lambda java 排序_java使用lambda表达式对List对象集合的某个属性进行排序

3bef71e6c4fa99df5cd059a1cd6b43a1.png

这里新建一个UserInfo对象,用来测试lambda表达式排序,属性如下:public class UserInfo {

private int id;

private int age;

private String name;

public UserInfo(int id, int age, String name) {

this.id = id;

this.age = age;

this.name = name;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public String getName() {

return name;

}测试

public void setName(String name) {

this.name = name;

}

相关视频教程推荐:java学习

开始造数据,测试下按照年龄大小正序排序:public static void main(String[] args) {

UserInfo user1 = new UserInfo(1, 20, "赵");

UserInfo user2 = new UserInfo(2, 25, "钱");

UserInfo user3 = new UserInfo(3, 23, "孙");

UserInfo user4 = new UserInfo(7, 16, "李");

UserInfo user5 = new UserInfo(6, 19, "周");

UserInfo user6 = new UserInfo(5, 12, "吴");

List userInfoList = new ArrayList<>();

userInfoList.add(user2);

userInfoList.add(user1);

userInfoList.add(user3);

userInfoList.add(user4);

userInfoList.add(user5);

userInfoList.add(user6);

//使用lambda表达式对age大小正序排序

userInfoList = userInfoList.stream().sorted(Comparator.comparing(UserInfo::getAge))

.collect(Collectors.toList());

for (UserInfo userInfo : userInfoList) {

System.out.println(userInfo.toString());

}

}

输出结果如下:

c2a8a9e44cbbbae9f15acaf29a3ee753.png

测试按照年龄大小倒序排序:public static void main(String[] args) {

UserInfo user1 = new UserInfo(1, 20, "赵");

UserInfo user2 = new UserInfo(2, 25, "钱");

UserInfo user3 = new UserInfo(3, 23, "孙");

UserInfo user4 = new UserInfo(7, 16, "李");

UserInfo user5 = new UserInfo(6, 19, "周");

UserInfo user6 = new UserInfo(5, 12, "吴");

List userInfoList = new ArrayList<>();

userInfoList.add(user2);

userInfoList.add(user1);

userInfoList.add(user3);

userInfoList.add(user4);

userInfoList.add(user5);

userInfoList.add(user6);

//使用lambda表达式对age大小倒序排序,发现就是多加了个reversed()方法

userInfoList = userInfoList.stream().sorted(Comparator.comparing(UserInfo::getAge).

reversed()).collect(Collectors.toList());

for (UserInfo userInfo : userInfoList) {

System.out.println(userInfo.toString());

}

}

输出结果如下:

c978e57b93112dbf1e55ffc9f549f3e7.png

总结下排序使用方法:

1、按照某个字段正序排序:userInfoList.stream().sorted(Comparator.comparing(UserInfo::getAge)).collect(Collectors.toList());

2、按照某个字段倒序排序:userInfoList.stream().sorted(Comparator.comparing(UserInfo::getAge).reversed()).collect(Collectors.toList());

以上各种参数根据自己业务对号入座即可。

相关文章教程推荐:java入门学习


版权声明:本文为weixin_28487433原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。