3 回答
![?](http://img1.sycdn.imooc.com/533e4c640001354402000200-100-100.jpg)
TA贡献1864条经验 获得超2个赞
set.stream()
.filter(x -> x.getMyParam1().equals("myParam1") && x.getMyParam2().equals("myParam2"))
.findFirst();
但是在findFirst这里想一下……您正在使用 a Set,所以它没有意义。为了更清楚地说明这一点:
Set<String> set = new HashSet<>();
set.add("hello");
set.add("world");
set.add("jug");
System.out.println(set.stream().findFirst().get()); // world
// add them
IntStream.range(0, 100_000)
.mapToObj(i -> "" + i)
.forEachOrdered(set::add);
// remove them immediatly after
IntStream.range(0, 100_000)
.mapToObj(i -> "" + i)
.forEachOrdered(set::remove);
System.out.println(set.stream().findFirst().get()); // hello
![?](http://img1.sycdn.imooc.com/5458472300015f4702200220-100-100.jpg)
TA贡献1836条经验 获得超13个赞
那么为什么不做某事。像这样在过滤器内部:
a-> "myParam1".equals(a.getP1()) && "myParam2".equals(a.getP2())
添加回答
举报