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]] ```
  • 相关阅读:
    Intouch 制作自定义登录弹窗
    ifix vba 读取计算机中的txt文件,截取字符串显示
    intouch 开发源程序加密方法
    语音报警系统说明
    ifix历史数据(H04/H08/H24)转换为CSV文件导出
    ifix 自动化(Automation)错误弹窗的解决方案
    云平台制作(二)-平台展示
    knudson hypothesis 二次突变假说
    纯合子,杂合子,杂合性缺失
    zero-base coordinate 和one-base coordinate
  • 原文地址:https://www.cnblogs.com/hgnulb/p/10119676.html
Copyright © 2011-2022 走看看