Как получить индекс ArrayList (Java)? - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь получить первый индекс ArrayList и не могу понять синтаксис.

Фрагмент класса DateSet

public class DateSet {

    public List<Date> dates; 

    public DateSet() {
        this.dates = new ArrayList<Date>();
    }

    public void add(Date date) {
        if (this.dates.contains(date)) {
            return;
        }
        this.dates.add(date);
    }

    public static void main(String args []) {
        DateSet setty = new DateSet();
        Date date = new Date("test");
        setty.add(date);
        setty.get(0); // < doesn't work
    }

Фрагмент класса Дата:

public class Date {

    String date;

    // constructor for date class
    public Date(String date) {
        this.date = date;
    }
}

Я подумал, что, поскольку я создаю объект "date" типа Date и добавляю его в ArrayList, мне нужно как-то вызвать его, вызвав внутреннюю дату String, но я не совсем уверен, если это кейс / как это сделать.

Буду признателен за помощь, заранее спасибо!

1 Ответ

1 голос
/ 06 июня 2019

Сначала необходимо получить ссылку на объект dates.

Измените

setty.get(0);

на

setty.dates.get(0);

или следующее, чтобы получить датув виде строки:

setty.dates.get(0).date

Затем сохраните ее в переменной или напечатайте как:

System.out.println(setty.dates.get(0).date);

Вы должны использовать методы получения / установки.

В отдельной заметкеthis.dates.contains(date) не будет работать, если вы не переопределите equals() и hashcode() в классе Date.И если вам не нужны дубликаты, вы должны использовать Set вместо List.

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