使用数组列表和创建对象

时间:2013-04-06 22:57:49

标签: java arraylist pass-by-reference

我很难理解如何向数组列表添加对象以及相关语法。

在Java中查看数组列表,“如何编程”第9版。它没有明确说明如何将对象添加到测试类的数组列表中。我根本不明白它们是如何通过/添加的。

就我而言,我使用Phonebook.java类来定义默认和非默认构造函数,并使用Test类将这些对象添加到数组列表中。

我的问题在于,在Test Class中添加这些对象的过程是什么,以及如何使用数组列表来处理或初始化PhoneBook类中的这些对象?

到目前为止

我的代码。

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


}

2 个答案:

答案 0 :(得分:1)

向任何List添加对象(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 );
    }
  }
}

答案 1 :(得分: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类和迭代的基础知识。

试试这个: Lessons on Java