Я пытаюсь выполнить поиск по коллекции ArrayList, если пары. То, что я хочу сделать, - это пройти коллекцию и найти первое значение в паре и вернуть второе значение этой пары. Проблема, с которой я сталкиваюсь, заключается в том, что проверка, которую я должен найти, первая величина, похоже, не работает, поэтому каждый раз, когда я выполняю поиск, я возвращаю null. Я знаю, что проблема существует с моим оператором if, но я не могу понять, что я делаю неправильно. Поскольку это домашнее задание, я не могу показать весь код для моей пары класса, или моего список пара класса, но я могу показать вам метод, который я для поиска первого значения:Поиск по коллекции пар списка массивов
public S findFirst(F firstValue) {
Iterator<Pair> myIter = this.iterator();
S tmp2 = null;
while (myIter.hasNext()) {
Pair tmp1 = myIter.next();
if (tmp1.getFirst() == firstCall) {
tmp2 = (S) tmp1.getSecond();
}
}
return tmp2;
}
Если я бросить в заявлении еще, что просто вызывает то, что я пытаюсь сделать в моей, если чек, как это:
else{
tmp2 = (S) tmp1.getSecond();
}
тогда, когда я проверить для первого значения, я получаю второе значение, так что я знаю, что я нахожусь в по крайней мере, на правильном пути, но я предполагаю, что я делаю что-то неправильно с тем, что я проверяю в инструкции if. Кто-нибудь знает, как я могу это сделать правильно (и, пожалуйста, имейте в виду, что это домашнее задание, поэтому руководство для того, как понять это, гораздо более ценно для меня, чем просто случайный ответ, я хочу учиться, а не просто с учетом ответа) Спасибо заранее!
Возможно ли использовать 'HashMap' вместо' ArrayList'? Это то, для чего они предназначены. –
Прошу вас не использовать '==' для сравнения строк. – Maroun
@ Давид, нет, это должен быть архаист – Xanthian23