Java 8 Stream, чтобы найти элемент в спискеJAVA

Программисты JAVA общаются здесь
Anonymous
Java 8 Stream, чтобы найти элемент в списке

Сообщение Anonymous »

У меня есть следующий класс: < /p>

Код: Выделить всё

public class Item {
int id;
String name;
// few other fields, constructor, getters/setters
}
У меня есть список элемента s. Я хочу перевести через список и найти экземпляр, который имеет конкретный идентификатор . Я пытаюсь сделать это через потоки. < /P>
public void foobar() {
List items = getItemList();
List ids = getIdsToLookup();
int id, i = ids.size() - 1;
while (i >= 0) {
id = ids.get(i);
Optional item = items
.stream()
.filter(a -> a.getId() == id)
.findFirst();
// do stuff
i--;
}
}
< /code>
Это лучший способ итерации по списку и получить необходимый мне элемент? Кроме того, я получаю ошибку на линии фильтра для идентификатора, которая говорит, что переменные, используемые в выражениях Lambda, должны быть окончательно или эффективно окончательно. Может быть, я смогу определить ID в цикле Whice, который должен избавиться от исключения. Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/359 ... nt-in-list

Вернуться в «JAVA»