Как перебрать все объекты одного типа? - PullRequest
0 голосов
/ 14 января 2019

Для проекта я хочу проверить, совпадает ли String с атрибутом String в одном из моих объектов.

Например, у меня есть 3 объекта предмета:

Item spotion = new Item("small potion", 5, 0, 0, 0, 0, 0);
Item mpotion = new Item("medium potion", 20, 0, 0, 0, 0, 0);
Item lpotion = new Item("large potion", 35, 0, 0, 0, 0, 0);

Я бы тогда хотел проверить, если

String s = spotion;

будет равно любому имени Item (первый атрибут);

Можно ли было бы сделать это, не создавая ArrayList элементов для циклического прохождения, а вместо этого просто посмотреть, сколько элементов существует, и включить их при создании?

1 Ответ

0 голосов
/ 14 января 2019

Чтобы перебрать объекты, вы должны сначала поместить их в массив, например:

Item[] items = new Item[] {
    new Item("small potion", 5, 0, 0, 0, 0, 0),
    new Item("medium potion", 20, 0, 0, 0, 0, 0),
    new Item("large potion", 35, 0, 0, 0, 0, 0),
}

Тогда вы сможете перебрать массив, используя обычный старый цикл for:

for(int i = 0; i < items.length; i++){
    //your code here
}

Или расширенный цикл:

for(Item item : items){
    //your code here
}

Для сравнения переменной все, что вам нужно сделать, это сравнить соответствующую переменную, используя equals:

if(item.yourVariable.equals(string)){
    //your code here
}

Вы не можете сравнить String напрямую с вашим объектом, если не переопределите его toString метод. Вместо этого вам нужно сравнить желаемое свойство.

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