【发布时间】:2013-04-06 22:57:49
【问题描述】:
我很难理解将对象添加到数组列表的工作原理以及相关的语法。
查看 Java 中的数组列表,“如何编程”第 9 版。它没有明确说明如何将对象从测试类添加到数组列表中。我只是不明白它们是如何传递/添加的。
在我的例子中,我使用 Phonebook.java 类来定义默认和非默认构造函数,并使用 Test 类将这些对象添加到数组列表中。
我的问题是,在测试类中添加这些对象的过程是什么,以及如何使用数组列表来处理或初始化 PhoneBook 类中的这些对象?
到目前为止我的代码如下。
电话簿.java ->
公开课PhoneBookTest {
public static void main (String [] args)
{
Scanner input = new Scanner (System.in);
ArrayList < PhoneBook > directory = new ArrayList <PhoneBook>(5);
System.out.println ("Welcome to your Phone Book");
System.out.println ("Add Entries to the list");
System.out.println ();
PhoneBook x;
String num = null;
String name = null;
for (int i = 0; i < 5 ; i++)
{
System.out.println ("Enter Name: ");
name = input.nextLine();
System.out.println();
System.out.println ("Enter Number: ");
num = input.nextLine();
System.out.println();
PhoneBook newEntry = new PhoneBook (name, num);
directory.add (newEntry);
}
}
【问题讨论】:
-
您是遇到错误还是只是想了解数组列表的基本工作原理?
-
我建议您查看this official tutorial from Oracle,了解有关列表的更多信息。
-
您还没有编写任何仅将 int/Integer 作为其参数的构造函数(您在 main 的第 2 行的构造函数中传递了 5)。您是否尝试创建 PhoneBook 对象数组?另外,根据您打印的“将条目添加到列表”的事实,您应该调用 setter 方法而不是 getter。在 for 循环条件检查中,您应该检查 ArrayList name.size()。
-
好吧,我遇到了几个错误。我知道我的代码很垃圾。我基本上不明白如何以这种方式使用数组列表。从另一个类调用对象,并将输入设置到对象的每个部分并将其添加到数组中。如果您只想预定义所有值并将其全部声明在主类中,这很容易,但它变得棘手,并且需要(我认为)比我还没有掌握的更多经验/知识。不幸的是,我拥有的 java 书,以及我正在学习的课程并没有强迫我们编写测试类......所以现在当我不得不这样做时,我迷失了。 :(
-
Avik,是的,我正在尝试创建一个电话簿对象数组。
标签: java arraylist pass-by-reference