利用stream将对象列表中某个属性为某个值的对象放到列表最后
时间: 2023-12-10 22:36:53 浏览: 96
可以使用Java 8中的Stream API来实现这个功能,具体代码如下:
```java
list.stream()
.sorted(Comparator.comparing(obj -> obj.getProperty()))
.collect(Collectors.toList());
```
其中,`list`是要操作的对象列表,`getProperty()`是获取对象某个属性的方法。这段代码会将列表中属性为某个值的对象放到列表最后,其他对象按照属性值的升序排列。
如果要将对象放到列表末尾,可以在排序时将匹配的对象设置为最大值,例如:
```java
list.stream()
.sorted(Comparator.comparing(obj -> obj.getProperty() == someValue ? Integer.MAX_VALUE : obj.getProperty()))
.collect(Collectors.toList());
```
这样,属性为某个值的对象会被放到列表末尾,其他对象按照属性值的升序排列。
阅读全文