Java List排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | 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
作者:假装空白
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通