java 使用steam对象列表根据一个字段排序
时间: 2024-11-12 22:45:50 浏览: 20
Java8 stream 中利用 groupingBy 进行多字段分组求和案例
5星 · 资源好评率100%
在Java中,如果你有一个对象列表,比如List<SteamObject>,其中每个SteamObject都有一个可以用来排序的字段,比如int类型的score或者String类型的name,你可以使用Collections.sort()或者Comparator接口来根据这个字段进行排序。
下面是一个简单的例子:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
class SteamObject {
private String name;
private int score;
// getters and setters
@Override
public String toString() {
return "SteamObject{" +
"name='" + name + '\'' +
", score=" + score +
'}';
}
}
public class Main {
public static void main(String[] args) {
List<SteamObject> steamObjects = new ArrayList<>();
// 添加一些SteamObject实例到list中...
// 如果你想按照score降序排序
Collections.sort(steamObjects, Comparator.comparingInt(SteamObject::getScore).reversed());
// 或者如果你想按照name升序排序
Collections.sort(steamObjects, Comparator.comparing(SteamObject::getName));
// 打印排序后的列表
for (SteamObject obj : steamObjects) {
System.out.println(obj);
}
}
}
```
在这个例子中,Comparator.comparingInt()用于整数类型的字段,comparing()用于字符串类型的字段。`.reversed()`用于降序排序,如果不加则默认升序。
阅读全文