java filter 跳过_在Java 8中使用IntStream.filter时如何跳过特定的数组索引

这篇博客探讨了如何使用Java的IntStream对数组进行操作,通过过滤和映射实现特定条件的选择和转换。示例代码展示了如何跳过数组中索引为1的元素,以及如何过滤出偶数值。还提出了使用IndexedValue类来同时检查索引和值,以进行更复杂的过滤操作。
摘要由CSDN通过智能技术生成

改为创建数组索引流,并在映射到数组元素之前对其进行过滤:

int[] numbers = ...;

IntStream.range(0, numbers.length).filter(i -> i!=1)

.map(i -> numbers[i]).forEach(System.out::println);

如果您首先需要按索引过滤掉一些元素,而某些元素按值过滤,则可以在地图之前有一个过滤器,之后有一个过滤器.

如果你需要检查同一过滤器中的索引和值,那么我认为最好的方法是创建一个类来保存两个值:

class IndexedValue {

private int index, value;

IndexedValue(int index, int value) {

this.index = index ;

this.value = value ;

}

int getIndex() { return index ;}

int getValue() { return value ;}

}

然后你就可以做到

int[] numbers = ... ;

IntStream.range(0, numbers.length).map(i -> new IndexedValue(i, numbers[i]))

.filter(v -> v.getIndex() == 1 || v.getValue() % 2 == 0)

.forEach(System.out::println);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值