Получить индекс, в котором элемент соответствует, используя поток API облегченного потока - PullRequest
0 голосов
/ 04 августа 2020

У меня есть следующий поток, и я использую эту библиотеку для потоков:

String itemDescValue = Stream.of(dtaArr).filter(e ->
                 e.getRateUID().equals(rateUID))
                .map(myObject::getItemDesc)
                .findFirst()
                .orElse(null);

Я хотел бы запустить поток, чтобы получить индекс, когда значение совпадает. Я знаю, что могу добиться этого с помощью простого for l oop:

for(int i=0 ;i < dtaArr.size(); i++)
        {
            if(dtaArr.get(i).getItemDesc().equals(itemDescValue)){
            //do stuff here
        }
}

Как мне получить индекс, когда значение совпадает с использованием API облегченного потока.

1 Ответ

1 голос
/ 04 августа 2020

Используйте IntStream.range:

OptionalInt idx =
    IntStream.range(0, dtaArr.size())
        .filter(i -> dta.get(i).getRateUID().equals(rateUID))
        .findFirst();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...