Java 排序列表列表 [英] Java Sort List of Lists

查看:42
本文介绍了Java 排序列表列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用 Collections.sort() 或其他排序方法按字典顺序对 Java 中的列表列表进行排序?

How would I sort a list of lists in Java in lexicographical order using Collections.sort() or another sorting method?

private List<List<Integer>> possiblePoles = setPoles();    
System.out.println(possiblePoles)
[[1, 3, 5], [1, 2, 3]]

推荐答案

您必须实现自己的 Comparator 类并将实例传递给 Collections.sort()

You will have to implement your own Comparator class and pass in an instance to Collections.sort()

class ListComparator<T extends Comparable<T>> implements Comparator<List<T>> {

  @Override
  public int compare(List<T> o1, List<T> o2) {
    for (int i = 0; i < Math.min(o1.size(), o2.size()); i++) {
      int c = o1.get(i).compareTo(o2.get(i));
      if (c != 0) {
        return c;
      }
    }
    return Integer.compare(o1.size(), o2.size());
  }

}

然后排序很容易

List<List<Integer>> listOfLists = ...;

Collections.sort(listOfLists, new ListComparator<>());

这篇关于Java 排序列表列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆