Задать вопрос
@Corrandoo
Начинающий Java Coder

Как работать через ArrayList со собственными классами?

Добрый день. Мой вопрос покажется нубским, однако, я только учу Java и, даже погуглив, ответа на свой вопрос не нашел. Прошу тапком не кидать.

Допустим, я написал свой класс Cat и добавил в него переменную name типа String. После этого, я создал ArrayList и добавил несколько объектов. Если бы у меня был обычный лист, то с помощью метода .get(), я бы мог спокойно обратиться и изменить значение переменной. Но что делать, если у меня в классе объявлена не только String name, а еще, допустим int age, как мне обратиться именно к конкретной переменной конкретного объекта cat. Если бы у меня был массив Cat[] cats, То я бы мог это сделать следующим образом:
cats[i].name = "имя";
А как мне обратиться в случае с ArrayList?
  • Вопрос задан
  • 607 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 2
@zelan
Кратко обо мне не получится.
List<Cat> cats = new ArrayList();
//добавление котов
Cat cat = new Cat();
cats.add(cat);
//....
//получение кота по индексу
int i = 0;
Cat cat1 = cats.get(i);

//так лучше не делать
cat1.name = "имя";

//лучше написать методы setName(String name) для установки имени и getName() для его получения.
cat1.setName("новое имя");
Ответ написан
как выше сказали, обращаться напрямую к полям - зло.
А выставить значение в одну строчку по примеру с массивом можно так:
list.get(i).setName(newName);

Ну, а если несколько менять, то удобнее так:
Cat cat = list.get(i);
cat.setName(newName);
cat.setAge(newAge);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы