我有以下 pojo:
class MyPojo {
String name;
int priority;
}
Run Code Online (Sandbox Code Playgroud)
我有一个List<MyPojo>. 现在,我想检索所有具有最高优先级的元素。这些元素的顺序无关紧要。
Java流可以做到这一点吗?我认为我应该首先按优先级分组,然后获取属于最高优先级的所有元素,但我不确定如何以有效的方式执行此操作。
你应该把它投射到IntStream并摆脱max()它。然后使用此值获取每个 pojo。
import java.util.List;
import java.util.stream.Collectors;
class MyPojo {
String name;
int priority;
public int getPriority() {
return priority;
}
}
public class Main {
public static void main(String[] args) {
List<MyPojo> list = null;
int max = list.stream().mapToInt(MyPojo::getPriority).max().orElse(Integer.MIN_VALUE);
List<MyPojo> maxPojos = list.stream().filter(pojo -> pojo.getPriority() == max).collect(Collectors.toList());
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
165 次 |
| 最近记录: |