Java List排序
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); } }
原帖地址:https://blog.csdn.net/qq_41029282/article/details/108348106