Young87

当前位置:首页 >个人收藏

java8怎么按照两个字段的乘积排序_Java8对多个字段排序

Java8对多个字段排序

创建User对象

public class Users {

private Long id;

private String name;

private String code;

private Long supId;

private List usersList;

public Users() {

}

public Users(Long id, String name, String code, Long supId) {

this.id = id;

this.name = name;

this.code = code;

this.supId = supId;

}

}

编写测试类

public class Demo01 {

List usersList = new ArrayList<>();

@Before

public void generateData() {

usersList.add(new Users(1l, "张三", "20", 0L));

usersList.add(new Users(2l, "李四1", "22", 1L));

usersList.add(new Users(4l, "王五1", "20", 2L));

usersList.add(new Users(3l, "李四2", "20", 1L));

usersList.add(new Users(6l, "王五3", "22", 2L));

usersList.add(new Users(5l, "王五2", "21", 2L));

usersList.add(new Users(7l, "王五4", "23", 2L));

}

@Test

public void demo1() {

List collect = usersList.stream().sorted(Comparator.comparing(Users::getSupId).thenComparing(Users::getCode)).collect(Collectors.toList());

for (Users users : collect) {

System.out.println(users);

}

}

}

以上代码含义是:通过supId字段进行排序,如果supId相同则按照code字段排序。结果集:

Users{id=1, name=‘张三‘, code=‘20‘, supId=0}

Users{id=3, name=‘李四2‘, code=‘20‘, supId=1}

Users{id=2, name=‘李四1‘, code=‘22‘, supId=1}

Users{id=4, name=‘王五1‘, code=‘20‘, supId=2}

Users{id=5, name=‘王五2‘, code=‘21‘, supId=2}

Users{id=6, name=‘王五3‘, code=‘22‘, supId=2}

Users{id=7, name=‘王五4‘, code=‘23‘, supId=2}

除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇: 100个最常问的JavaScript面试问答-第4部分(共10部分)

下一篇: 新建 Microsoft Office Word 文档

精华推荐