Java8排序使用的方法是Collections.sort();接下来为大家讲解具体怎么排序。
1、创建一个Staff类,然后在Employee类中定义姓名、年龄和工资三个字段,代码如下。
@Data
@Builder
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class Staff implements Serializable {
private static final long serialVersionUID = -9079722457749166858L;
private String name;
private Integer age;
private Double salary;
}
2、创建一个集合,并往集合里面增加数据
protected List<Staff > staff = Arrays.asList( new Staff ("张三", 18, 9999.99),
new Staff ("李四", 38, 5555.55),
new Staff ("王五", 60, 6666.66),
new Staff ("赵六", 8, 7777.77),
new Staff ("田七", 58, 3333.33)
);
3、先根据年龄排序,年龄相同则根据姓名排序,逻辑实现如下
@Test
public void test1(){ Collections.sort(staff , (e1, e2) -> {
if(e1.getAge() == e2.getAge()){
return e1.getName().compareTo(e2.getName());
}
return Integer.compare(e1.getAge(), e2.getAge());
});
Staff .stream().forEach(System.out::println);
}
4、如果是按照年龄倒序排列的话,只需要在return的时候返回负数就可以了,也就是分别在return出加一个-号
return -Integer.compare(e1.getAge(), e2.getAge());
正文完