stream中获取下标
时间: 2024-10-25 18:12:50 浏览: 9
在Java Stream API中,如果你想要同时处理元素并获取它们的索引,你可以使用`IntStream`而不是普通的`Stream`。`IntStream`允许你在流上操作整数,包括计算每个元素的索引。
例如,如果你有一个列表并想获取其元素的新流,其中包含了原始元素和它们的索引,可以这样做:
```java
List<String> list = Arrays.asList("a", "b", "c");
IntStream indexStream = IntStream.range(0, list.size())
.mapToObj(i -> new Pair<>(i, list.get(i))); // 使用Pair类表示元组
// Pair类示例 (这里假设有一个Pair类,它有两个String类型的字段)
class Pair<K, V> {
private final K key;
private final V value;
public Pair(K key, V value) {
this.key = key;
this.value = value;
}
// 获取键和值的方法...
}
indexStream.forEach(pair -> System.out.println("索引: " + pair.getKey() + ", 值: " + pair.getValue()));
```
在这个例子中,`range(0, list.size())`生成了一个从0到列表长度的整数流,然后通过`mapToObj`将每个索引映射到一个新的Pair对象,其中包含原索引和对应列表中的元素。
阅读全文