码迷,mamicode.com
首页 > 编程语言 > 详细

Java 8 对 List<List<String>> 排序

时间:2018-12-14 17:27:32      阅读:378      评论:0      收藏:0      [点我收藏+]

标签:col   import   valueof   eof   target   排序   targe   ret   rgs   

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]]

Java 8 对 List<List<String>> 排序

标签:col   import   valueof   eof   target   排序   targe   ret   rgs   

原文地址:https://www.cnblogs.com/hglibin/p/10119676.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!