首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对包含列表的集合进行排序

对包含列表的集合进行排序
EN

Stack Overflow用户
提问于 2015-12-23 14:58:46
回答 1查看 459关注 0票数 1

我有很多列表,每个列表包含4个元素都是字符串。现在我有了一个Set<List>,它存储了上面所有的列表。

我想根据列表中的字段对集合进行排序。

例如:list1=["x","2"], list2=["a","5"], list3=["g","1"]set.add(list1), set.add(list2), set.add(list3)

现在我想在列表中的第二个字段的基础上对该集合进行排序。

EN

回答 1

Stack Overflow用户

发布于 2015-12-23 15:19:59

所以你有这样的结果:

代码语言:javascript
运行
复制
 List<String> list1 = Arrays.asList("x", "2");
 List<String> list2 = Arrays.asList("a", "5");
 List<String> list3 = Arrays.asList("g", "1");

和一个超级列表

代码语言:javascript
运行
复制
 Set<List<String>> set = new HashSet<List<String>>();
 set.add(list1);
 set.add(list2);
 set.add(list3);

并且您需要在第二个字符串上有一个排序列表:

代码语言:javascript
运行
复制
    List<List<String>> list = new ArrayList<List<String>>(set);
    Collections.sort(list, new Comparator<List<String>>() {

        @Override
        public int compare(List<String> o1, List<String> o2) {
            //Index 1 = second element
            return o1.get(1).compareTo(o2.get(1));
        }

     });    

完整示例

列表list1 = Arrays.asList("x","2");列表list2 = Arrays.asList("a","5");列表list3 = Arrays.asList("g","1");

代码语言:javascript
运行
复制
     Set<List<String>> set = new HashSet<List<String>>();
     set.add(list1);
     set.add(list2);
     set.add(list3);

     List<List<String>> list = new ArrayList<List<String>>(set);
     Collections.sort(list, new Comparator<List<String>>() {

        @Override
        public int compare(List<String> o1, List<String> o2) {
            //Index 1 = second element
            return o1.get(1).compareTo(o2.get(1));
        }

     });
     for(List<String> li : list) {
         System.out.println(li);
     }

创建此输出/排序:

代码语言:javascript
运行
复制
[g, 1]
[x, 2]
[a, 5]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34430277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档