有一个List<GoodsExplosive> 数据,我仅需要从list里面取一条数据,根据“grounding_state”的值取数据的顺序为1>2>0>3>5,怎么实现
时间: 2024-03-12 09:47:53 浏览: 43
在ListView中对数据进行排序
4星 · 用户满意度95%
可以使用Java 8的Stream API来实现,代码如下:
```
GoodsExplosive result = list.stream()
.sorted(Comparator.comparing(GoodsExplosive::getGroundingState, (s1, s2) -> {
if (s1.equals(s2)) {
return 0;
} else if (s1 == 1 || s2 == 5) {
return -1;
} else if (s1 == 5 || s2 == 1) {
return 1;
} else if (s1 == 2) {
return -1;
} else if (s2 == 2) {
return 1;
} else if (s1 == 0) {
return -1;
} else {
return 1;
}
}))
.findFirst()
.orElse(null);
```
以上代码首先使用Stream API对List进行排序,排序规则按照题目要求进行定义。最后使用findFirst方法获取排序后的第一个元素,即为符合条件的数据。如果List为空,则返回null。
阅读全文