0

我有以下流,并且正在将此用于流:

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

我想运行一个流来获取值匹配时的索引。我知道我可以使用一个简单的 for 循环来实现它:

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

如何使用轻量级流 API 获取值何时匹配的索引。

4

1 回答 1

1

使用IntStream.range

OptionalInt idx =
    IntStream.range(0, dtaArr.size())
        .filter(i -> dta.get(i).getRateUID().equals(rateUID))
        .findFirst();
于 2020-08-04T09:02:50.920 回答