Java8排序

102次阅读
没有评论

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());

 

正文完
 
评论(没有评论)