【问题标题】:How to sort list of list in java如何在java中对列表进行排序
【发布时间】:2014-08-25 07:21:43
【问题描述】:

我有一个名为 mainPartition 的列表字符串列表:[[23423],[23133],[32323],[23211]] 输入文件是:

现在我想对这个 mainPartition 进行排序,但它不适合我

我使用的代码是:

Collections.sort(mainPartition, new Comparator<List<String>> () {
    public int compareTo(List<String> a, List<String> b) {
        return a.get(1).compareTo(b.get(1));
    }
});

【问题讨论】:

  • 是的,但同样的问题仍然存在
  • ab的具体类型是什么? (列表只是一个接口)。
  • 缺少一些信息,因为我看不出如果没有实施正确的方法,该代码甚至会如何编译。

标签: java sorting


【解决方案1】:

在实现 Comparator 时,您需要实现 compare(Object o1, Object o2)。参考javadoc

以下是更正后的实现:

 Collections.sort(mainPartition, new Comparator<List<String>> () {
        @Override
        public int compare(List<String> o1, List<String> o2) {
            return o1.get(1).compareTo(o2.get(1));
        }
  });

另外,如果你需要自然排序,你应该直接使用

Collections.sort(collection),

提供类实现 Comparable。

【讨论】:

  • 它是一个字符串列表的列表。此外,如果没有实现正确的方法,编译器会抛出一个错误说明。
  • 感谢 R.J 指出 List>。相应地更新答案。
猜你喜欢
  • 2020-12-23
  • 2019-06-04
  • 2013-07-09
  • 1970-01-01
  • 1970-01-01
  • 2018-10-20
  • 2019-09-05
  • 2016-03-21
  • 1970-01-01
相关资源
最近更新 更多