zoukankan      html  css  js  c++  java
  • Java 8 对 List<List<String>> 排序

    Java 8 对 List<List> 排序

    import java.util.ArrayList;
    import java.util.List;
    import java.util.stream.Collectors;
    
    /**
     * @author libin
     * @date 2018/12/14 13:36:34
     */
    public class Test {
    
    	public static void main(String[] args) {
    
    		List<List<String>> stulist = new ArrayList<List<String>>();
    
    		List<String> list1 = new ArrayList<String>();
    		List<String> list2 = new ArrayList<String>();
    		List<String> list3 = new ArrayList<String>();
    		List<String> list4 = new ArrayList<String>();
    
    		list1.add("1");
    		list1.add("张三");
    		list1.add("D");
    
    		list2.add("2");
    		list2.add("李四");
    		list2.add("B");
    
    		list3.add("3");
    		list3.add("王五");
    		list3.add("A");
    
    		list4.add("4");
    		list4.add("赵六");
    		list4.add("C");
    
    		stulist.add(list3);
    		stulist.add(list4);
    		stulist.add(list1);
    		stulist.add(list2);
    
    		System.out.println(stulist);
    
    		// Java 8 对List<List<String>>排序代码
    		stulist = stulist.stream().sorted((o1, o2) -> {
    			for (int i = 0; i < Math.min(o1.size(), o2.size()); i++) {
    				int c = o1.get(2).compareTo(o2.get(2));
    				if (c != 0) {
    					return c;
    				}
    			}
    			return Integer.compare(o1.size(), o2.size());
    		}).collect(Collectors.toList());
    		System.out.println(stulist);
    
    		stulist = stulist.stream().sorted((o1, o2) -> {
    			for (int i = 0; i < Math.min(o1.size(), o2.size()); i++) {
    				int c = Integer.valueOf(o1.get(0)).compareTo(Integer.valueOf(o2.get(0)));
    				if (c != 0) {
    					return c;
    				}
    			}
    			return Integer.compare(o1.size(), o2.size());
    		}).collect(Collectors.toList());
    		System.out.println(stulist);
    	}
    
    }
    

    点击查看结果

    ``` [[3, 王五, A], [4, 赵六, C], [1, 张三, D], [2, 李四, B]] [[3, 王五, A], [2, 李四, B], [4, 赵六, C], [1, 张三, D]] [[1, 张三, D], [2, 李四, B], [3, 王五, A], [4, 赵六, C]] ```
  • 相关阅读:
    按学生成绩排序
    错误分析:floating point formats not linked
    学生成绩等级统计
    两个链表按升序合并
    js随机生成hex色值
    WEB监控系列第一篇:web监控搭建——graphite+statsd(单机搭建)
    WEB监控系列第四篇:statsd指南
    WEB监控系列第三篇:graphite指南
    安装Fedora 15后需做的25件事情
    《python tutorial》python 学习第二天
  • 原文地址:https://www.cnblogs.com/hgnulb/p/10119676.html
Copyright © 2011-2022 走看看