热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在JAVA代码的不同部分多次使用数组列表

我正在使用数组列表通过构建一个交互式菜单供用户选择来存储来自用户输入的值。到目前为止,我的两个选择是为用户提供向列表输入数据和读取列表的全部内容。到目前为止,我创建的代码由两个类组成。

我正在使用数组列表通过构建一个交互式菜单供用户选择来存储来自用户输入的值。到目前为止,我的两个选择是为用户提供向列表输入数据和读取列表的全部内容。到目前为止,我创建的代码由两个类组成。

我的主课,

package com.andrekreou;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.println("Welcome to the personnel address book");
System.out.println("In the following menu, a whole selection of services is provided");
Scanner user_input = new Scanner(System.in);
while (true){
showMenu();
String selection = user_input.next();
if (selection.equals("1")){
System.out.println("Below you can see all of the data being provided");
for (String personnel : catalog) { } //ERROR: Cannot resolve symbol catalog
}else if (selection.equals("2")){
ArrayList catalog = new ArrayList<>();
Personnel p1 = new Personnel();
System.out.println("Please insert the data for the new contact");
System.out.println("Input the fullname:");
Scanner scan = new Scanner(System.in);
String full_name = scan.nextLine();
p1.setFull_name(full_name);
catalog.add(full_name);
System.out.println("You inserted the following fullname: "+p1.getFull_name());
System.out.println("Input the phonenumber:");
Scanner phone_number_input = new Scanner(System.in);
String phone_number = phone_number_input.next();
p1.setPhone_number(phone_number);
catalog.add(phone_number);
System.out.println("You inserted the following phonenumber: "+p1.getPhone_number());
System.out.println("Input the address:");
Scanner address_input = new Scanner(System.in);
String address = address_input.nextLine();
p1.setAddress(address);
catalog.add(address);
System.out.println("You inserted the following address: "+p1.getAddress());
System.out.println("???????? ??? ????????? e-mail:");
Scanner email_input = new Scanner(System.in);
String email = email_input.next();
p1.setEmail(email);
catalog.add(email);
System.out.println("You inserted the following e-mail: "+p1.getEmail());
System.out.println("???????? ??? ?????????? ????????:");
Scanner date_of_birth_input = new Scanner(System.in);
String date_of_birth = date_of_birth_input.nextLine();
p1.setDate_of_birth(date_of_birth);
catalog.add(date_of_birth);
System.out.println("You inserted the following: "+p1.getDate_of_birth());
System.out.println("???????? ??? ?????? ????:");
Scanner AMKA_input = new Scanner(System.in);
String AMKA = AMKA_input.next();
p1.setAMKA(AMKA);
catalog.add(AMKA);
System.out.println("You inserted the following ????: "+p1.getAMKA());
}
}
}
static void showMenu(){
System.out.println("1. View the whole contacts");
System.out.println("2. Insert a new contact");
System.out.println("Please give your choice");
}
}

以及我的人员类,带有 getter 和 setter 方法,以便存储来自用户输入的数据,

package com.andrekreou;
import java.io.Serializable;
public class Personnel implements Serializable {
private String full_name;
private String phone_number;
private String address;
private String email;
private String date_of_birth;
private String AMKA;
public String getFull_name() {
return full_name;
}
public void setFull_name(String full_name) {
this.full_name = full_name;
}
public String getPhone_number() {
return phone_number;
}
public void setPhone_number(String phone_number) {
this.phone_number = phone_number;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getDate_of_birth() {
return date_of_birth;
}
public void setDate_of_birth(String date_of_birth) {
this.date_of_birth = date_of_birth;
}
public String getAMKA() {
return AMKA;
}
public void setAMKA(String AMKA) {
this.AMKA = AMKA;
}
}

我的问题是我想使用 foreach 循环在选项 1 中使用目录列表,但我不能,因为我收到代码中显示的“无法解析符号目录”错误。我究竟做错了什么?

回答

我不会争论解决方案的正确性,以及实现它的不同方式。然而,如果你想解决那个编译错误,这只是变量作用域的问题:你只需要catalogmain函数的开头移动列表的创建,以增加其作用域的方式,例如你可以把它作为第一条语句,如下所示:

public class Main {
public static void main(String[] args) {
ArrayList catalog = new ArrayList<>(); // Creation of catalog list
...
}
...
}






推荐阅读
  • 深入理解Java泛型:JDK 5的新特性
    本文详细介绍了Java泛型的概念及其在JDK 5中的应用,通过具体代码示例解释了泛型的引入、作用和优势。同时,探讨了泛型类、泛型方法和泛型接口的实现,并深入讲解了通配符的使用。 ... [详细]
  • 本文详细介绍了Java中org.w3c.dom.Text类的splitText()方法,通过多个代码示例展示了其实际应用。该方法用于将文本节点在指定位置拆分为两个节点,并保持在文档树中。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • 本文详细介绍了Java中的访问器(getter)和修改器(setter),探讨了它们在保护数据完整性、增强代码可维护性方面的重要作用。通过具体示例,展示了如何正确使用这些方法来控制类属性的访问和更新。 ... [详细]
  • 在维护公司项目时,发现按下手机的某个物理按键后会激活相应的服务,并在屏幕上模拟点击特定坐标点。本文详细介绍了如何使用ADB Shell Input命令来模拟各种输入事件,包括滑动、按键和点击等。 ... [详细]
  • andr ... [详细]
  • 本文介绍如何使用JPA Criteria API创建带有多个可选参数的动态查询方法。当某些参数为空时,这些参数不会影响最终查询结果。 ... [详细]
  • Scala 实现 UTF-8 编码属性文件读取与克隆
    本文介绍如何使用 Scala 以 UTF-8 编码方式读取属性文件,并实现属性文件的克隆功能。通过这种方式,可以确保配置文件在多线程环境下的一致性和高效性。 ... [详细]
  • 本文探讨了如何在编程中正确处理包含空数组的 JSON 对象,提供了详细的代码示例和解决方案。 ... [详细]
  • 题目Link题目学习link1题目学习link2题目学习link3%%%受益匪浅!-----&# ... [详细]
  • 尽管使用TensorFlow和PyTorch等成熟框架可以显著降低实现递归神经网络(RNN)的门槛,但对于初学者来说,理解其底层原理至关重要。本文将引导您使用NumPy从头构建一个用于自然语言处理(NLP)的RNN模型。 ... [详细]
author-avatar
拍友2502883387
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有