有一个List>:
List<Pair<String, Integer>> list =new ArrayList<>();
对是javafx.util.Pair
,它有一个键和一个值。
和
Integer tmp;
我应该如何通过java 8流获取Pair.getValue() >=tmp
的所有字符串?
答案 0 :(得分:5)
像这样的东西,没有编译它,因为我不知道Pair
是什么;但假设它有两个部分left
和right
并且有吸气剂。
list.filter(p -> p.getRight() >= tmp)
.map(Pair::getLeft)
.collect(Collectors.toList());
答案 1 :(得分:0)
list.stream()
.filter(p -> p.getValue() >= tmp)
.map(pair -> pair.getKey())
.collect(Collectors.toList())
其中map可以更改为静态方法引用,如Pair :: getValue
由于这将返回一个流而您很可能想要返回一个List,您需要将其转换为带有.collect(Collection.asList())的列表