当前位置: 首页 > 面试题库 >

Java排序列表列表

燕琨
2023-03-14
问题内容

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

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

问题答案:

您将必须实现自己的Comparator类并将实例传递给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<>());


 类似资料:
  • 我有一个点列表,每个点都是一个大小为2的小列表。我想按x的递增顺序对点列表进行排序,如果x值相等,我就按y的递减顺序排序来打破平局。 我编写了一个自定义比较器来对点进行排序,如下所示: 以下是排序前的输入: 以下是使用上述比较器排序后产生的结果: 观察:- 输入按x的升序排序。 (5,12)被正确地放在(5,10)之前 (9,-15)被正确地放在(9,-1000)之前 然而,(10001,-10)

  • 问题内容: 假设我有一堂课。 在其中,我有一个,其中一个值是。 我想获得的S: 我宁愿使用a 而不是对其进行迭代。 我该怎么做? 问题答案: 您可以使用。 假设您的输入是a ,则该类内的成员称为,并且为“ Breed”键存储了Breed:

  • 问题内容: 我有以下课程。在此,虹膜是具有某些属性的另一类。 我想对此数组列表进行排序(即列表 helperList),基于距离参数降序。我已经编写了以下方法,但是它不起作用。 有人可以提出解决方案吗? 问题答案: 为什么不让您的类实现接口,然后使用Collections类提供的内置排序方法。 我认为这可以解决问题。另外,此方法是稳定的。 http://docs.oracle.com/javase

  • 主要内容:SortedList 类的中的属性,SortedList 类的中的方法在 C# 中,SortedList 类用来表示键/值对的集合,这些键/值对按照键值进行排序,并且可以通过键或索引访问集合中的各个项。 我们可以将排序列表看作是数组和哈希表的组合,其中包含了可以使用键或索引访问各项的列表。如果您使用索引访问各项,那么它就是一个动态数组(ArrayList),如果您使用键访问各项,那么它就是一个哈希表(Hashtable)。另外,集合中的各项总是按键值进行排序。 So

  • 问题内容: 如何按降序对列表进行排序? 问题答案: 在一行中,使用: 将函数传递给:

  • 我有一个java中的double列表,我想按降序排列ArrayList。 输入ArrayList如下所示: 输出应该是这样的