当前位置: 首页 > 知识库问答 >
问题:

排序一对java[重复]列表

公良弘毅
2023-03-14

我已经列出了对数。我想先根据键对它们进行排序,如果键相同,则根据值进行排序。

我尝试了以下代码,但引发了与类型不兼容的异常:无法推断类型变量T

 List<Pair<Integer,Integer>> list = new ArrayList<>();
 list.sort(Comparator.comparingInt(Pair::getKey).thenComparingInt(Pair::getValue);

错误:

不兼容的类型:无法推断类型变量T(参数不匹配;类对中的无效方法引用方法getKey无法应用于所需的给定类型:未找到参数:对象原因:实际参数列表和形式参数列表长度不同)

其中T、K、V是类型变量:T扩展在方法比较中声明的对象IT(ToIntFunction)K扩展在类对中声明的对象V扩展在类对中声明的对象

共有1个答案

崔琦
2023-03-14

您需要帮助编译器推断比较器的适当类型:

list.sort(Comparator.<Pair<Integer, Integer>>comparingInt(Pair::getKey).thenComparingInt(Pair::getValue));
 类似资料:
  • 我有一个小问题,希望你能帮我解决。 我有一个名为Entity的类,它有几个属性,其中两个属性是id和实用程序: 然后,我在ArrayList中有几个Entity对象,如下所示: 现在,我想根据公用事业实体对列表进行排序。我使用一个定制的比较器,尝试了几种类似我在这里读到的解决方案: 但是在这条线上: 我遇到了以下错误:int不能被解引用,我不知道如何修复它。你们能帮我解决这个问题或者给出另一个解决

  • 我有一个,其中具有字符串值,其中包含名称,然后将double转换为字符串。

  • 我有以下课程 我正在尝试按贡献者名称和角色名称对ResourceContributor列表进行排序。到目前为止,我得到的是: 我已经尝试使用then比较,但还不知道如何使用它。

  • 我想对名为“LTE\u PrbUtil”的excel文件工作表进行排序,它有一个名为“CELL”的列,该列是字符串降序。当我运行程序并发现一些错误时: 这是我的代码: 数据框似乎无法识别。有人能帮忙吗?

  • 我有一个linkedhashmap的列表,我需要根据linkedhashmap的属性对列表进行排序。 这是我的LinkedHashMap; 我想根据“代码”属性对此列表进行排序。