@Data
@AllArgsConstructor
public class User implements Serializable {
private static final long serialVersionUID = -1078433404507796595L;
private Integer id ;
private String userName ;
private String password ;
}
Collections.sort,Java 8 Lambda 表达式 ,Comparator重写compare方法
public class TestArrayList {
public static void main(String[] args) {
List<User> userList = new ArrayList<User>();
buildData(userList);
for(User u : userList){
System.out.println(u.toString());
}
System.out.println("<-----------*****************------------>");
userList.sort(new Comparator<User>(){
@Override
public int compare(User arg0, User arg1) {
//这里是根据ID来排序,所以它为空的要剔除掉
if(arg0.getId()==null || arg1.getId()==null) return 0;
return arg0.getId().compareTo(arg1.getId());//这是顺序
}
});
for(User u : userList){
System.out.println(u.toString());
}
List<Integer> Integerlist = new ArrayList<>();
Integerlist.add(3);
Integerlist.add(5);
Integerlist.add(1);
Collections.reverse(Integerlist);
System.out.println("倒序:"+Integerlist);
Collections.sort(Integerlist);
System.out.println("升序:"+Integerlist);
//java8新特性
Integerlist.add(3);
Integerlist.add(5);
Integerlist.add(1);
Integerlist.sort(Integer::compareTo);
System.out.println("java8新特性:"+Integerlist);
Collections.sort(userList, (User h1, User h2) -> h1.getId() - h2.getId());
System.out.println("aaaaaaaaa:"+userList);
userList.stream().sorted(Comparator.comparing(User::getId)).collect(Collectors.toList()).forEach(System.out::println);
System.out.println("<-----------以下:id降序,Password升序------------>");
userList.stream().sorted(Comparator.comparing(User::getId).reversed()
.thenComparing(Comparator.comparing(User::getPassword)))
.collect(Collectors.toList()).forEach(System.out::println);
}
public static void buildData(List<User> userList){
if(userList == null){
userList = new ArrayList<User>();
}
User u1 = new User((Integer)1, "kobe1" ,"123456");
User u2 = new User((Integer)2, "kobe2" , "123456");
User u3 = new User((Integer)3, "kobe3" ,"123456");
User u31 = new User((Integer)3, "kobe31" , "1");
User u32 = new User((Integer)3, "kobe32" , "2");
User u33 = new User((Integer)3, "kobe33" ,"3");
User u4 = new User((Integer)4, "kobe4" ,"654321");
User u5 = new User((Integer)5, "kobe5" , "666666");
User u6 = new User((Integer)6, "kobe6" ,"888888");
userList.add(u5);
userList.add(u33);
userList.add(u3);
userList.add(u31);
userList.add(u32);
userList.add(u2);
userList.add(u1);
userList.add(u4);
userList.add(u6);
}
}