Java对List<对象>属性进行排序
1、首先创建一个实体类User,大概属性如下:
@Getter
@Setter
public class User {
public User(String name, Integer age) {
this.name = name;
this.age = age;
}
private String name;
private Integer age;
}
2、进行排序(正序):
List<User> userList = new ArrayList<>();
userList.add(new User("红", 35));
userList.add(new User("橙", 19));
userList.add(new User("黄", 25));
userList.add(new User("绿", 30));
userList.add(new User("青", 9));
userList.add(new User("蓝", 19));
userList.sort((v1, v2) -> v1.getAge().compareTo(v2.getAge()));
userList.forEach(v -> {
System.out.println("name:" + v.getName() + " age:" + v.getAge());
});
打印结果:
name:青 age:9
name:橙 age:19
name:蓝 age:19
name:黄 age:25
name:绿 age:30
name:红 age:35
倒序就是将v1和v2换下位置:
List<User> userList = new ArrayList<>();
userList.add(new User("红", 35));
userList.add(new User("橙", 19));
userList.add(new User("黄", 25));
userList.add(new User("绿", 30));
userList.add(new User("青", 9));
userList.add(new User("蓝", 19));
userList.sort((v1, v2) -> v2.getAge().compareTo(v1.getAge()));
userList.forEach(v -> {
System.out.println("name:" + v.getName() + " age:" + v.getAge());
});
打印结果:
name:红 age:35
name:绿 age:30
name:黄 age:25
name:橙 age:19
name:蓝 age:19
name:青 age:9
3、如果想截取前几名的数据:
List<User> userList = new ArrayList<>();
userList.add(new User("红", 35));
userList.add(new User("橙", 19));
userList.add(new User("黄", 25));
userList.add(new User("绿", 30));
userList.add(new User("青", 9));
userList.add(new User("蓝", 19));
userList.sort((v1, v2) -> v2.getAge().compareTo(v1.getAge()));
List<User> users = userList.subList(0, 3);
users.forEach(v -> {
System.out.println("name:" + v.getName() + " age:" + v.getAge());
});
打印结果:
name:红 age:35
name:绿 age:30
name:黄 age:25
还没有评论,来说两句吧...