0

我正在努力理解将对象添加到数组列表的工作原理以及相关的语法。

查看 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);
    }


}
4

2 回答 2

1

将对象添加到任何列表(ArrayList 只是列表的一种实现)使用该add方法。在您的示例中,将每个条目添加到 ArrayList 的末尾,PhoneBookTest看起来像这样:

class PhoneBookTest
{
  public static void main( String[] args )
  {
    List<PhoneBook> phoneBooks = new ArrayList<PhoneBook>( 5 );
    Scanner input = new Scanner (System.in);

    System.out.println ("Welcome to your Phone Book");
    System.out.println ("Add Entries to the list");
    System.out.println ();

    for (int i = 1; i < = phoneBooks.size(); i++)
    {
        System.out.println ("Enter Name: ");
        String name = input.nextLine();
        System.out.println();
        System.out.println ("Enter Number: ");
        String number = input.nextLine();
        System.out.println();

        PhoneBook newEntry = new PhoneBook( name, number );
        phoneBooks.add( newEntry );
    }
  }
}
于 2013-04-06T23:14:03.347 回答
0

在您的循环中,您是参考

Phonebook.getName() in an effort to set it.

您的代码需要访问电话簿的实例,而不是静态引用它。您还需要循环列表,而不是类电话簿。

   for (int i = 1; i < = directory.size(); i++)
   {
   ((Phonebook) directory.get(i)).setName("setting name to this text!");

您还可以像这样迭代列表:

   for(Phonebook myphonebook : directory)

我认为您应该阅读 Java 类和迭代的基础知识。

试试这个: Java课程

于 2013-04-06T23:19:32.570 回答