Создание нового архива, добавление в конец - PullRequest
2 голосов
/ 27 апреля 2011
public ArrayList<Person> people;

Так вы бы создали экземпляр переменной people в виде нового пустого объекта ArrayList of Person?

ArrayList<Person> people = new ArrayList<Person>();

И как вы добавите newMember в конец списка?

public void addItem(Person newMember){
            people.add(newMember);

    }

Ответы [ 3 ]

3 голосов
/ 27 апреля 2011
нет

Нет

class Foo {
  public ArrayList<Person> people;

  Foo() {
    //this:
    ArrayList<Person> people = new ArrayList<Person>();
    //creates a new variable also called people!

    System.out.println(this.people);// prints "null"!
    System.out.println(people);//prints "bladiebla"
  }
  Foo() {
    people = new ArrayList<Person>();//this DOES work
  }
}

Как это может (или должно) выглядеть: private, List вместо ArrayList и this., поэтому вы больше никогда не совершите эту ошибку:

public class Foo {
  private List<Person> people;

  public Foo() {
    this.people = new ArrayList<Person>();
  }
  public void addItem(Person newMember) {
    people.add(newMember);
  }
}
1 голос
/ 27 апреля 2011

Да, это правильно.Если позже вы захотите добавить элемент в середину списка, используйте метод add (int index, Object elem).

http://download.oracle.com/javase/6/docs/api/java/util/ArrayList.html

0 голосов
/ 30 сентября 2014

Чтобы создать экземпляр пустого ArrayList, необходимо явно определить количество элементов в конструкторе. Пустой конструктор выделяет память для 10 элементов. Согласно документации:

public ArrayList ()

Создает пустой список с начальной емкостью 10.

По умолчанию add(item) метод ArrayList добавляет элемент в конец списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...