Как найти все индексы объекта в списке без цикла? - PullRequest
1 голос
/ 20 июня 2019

У меня есть проблема, которая, вероятно, довольно проста, но я не могу найти ответ на нее.

Я хотел бы иметь возможность получить все индексы, где объект находится в списке, но без выполнения цикла по списку.

public void exampleFunction(){
    ArrayList<Integer> completeList = new ArrayList<>();
    completeList.add(1);
    completeList.add(2);
    completeList.add(1);

    Integer searchObject = 1;
    List<Integer> indexes = DO SOMETHING TO GET THE INDEXES LIST [0, 2];
}

1 Ответ

6 голосов
/ 20 июня 2019

Вы можете использовать API Stream, создав IntStream, который имеет все индексы completeList, а затем отфильтровать индексы, где 1 не найден:

List<Integer> indexList = IntStream.range(0, completeList.size())
                                   .filter(x -> completeList.get(x) == 1)
                                   .collect(Collectors.toList());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...