Java 如何根据一行中的特定字段对列表进行排序?(爪哇语)
给定一个列表(ArrayList),其中包含特定类(也称为“Point”)中的项,如何根据Point类(仅x维)中的特定字段(int类型)对列表进行排序 我试过了,我知道这个函数:Collections.sort(list\u name,new comperator\u name)通常是有效的,但我不能更改类点,也不能更改主函数中除一行以外的任何内容 有两种解决方案是可取的:一种是不带“比较”或“比较”功能的点类,另一种是带“比较”功能的点类 编辑:出于某种原因,有人建议将其作为副本—我以前也看到过,但特别要求提供一种不需要实现comperator的解决方案。现在Java 8列表已经Java 如何根据一行中的特定字段对列表进行排序?(爪哇语),java,sorting,Java,Sorting,给定一个列表(ArrayList),其中包含特定类(也称为“Point”)中的项,如何根据Point类(仅x维)中的特定字段(int类型)对列表进行排序 我试过了,我知道这个函数:Collections.sort(list\u name,new comperator\u name)通常是有效的,但我不能更改类点,也不能更改主函数中除一行以外的任何内容 有两种解决方案是可取的:一种是不带“比较”或“比较”功能的点类,另一种是带“比较”功能的点类 编辑:出于某种原因,有人建议将其作为副本—我以前也看
List.sort(Comparator<? super E> c).
Java 8在Collections包中有许多更新,因此现在您有了许多新方法,可以使用它们使代码更精简。。。就像用一行对列表排序一样
玩得开心
请看这里:
在这里:
有关Comparator的更多信息,请参阅Java 8中的列表。您是否意识到链接的问题/答案适用于不同的编程语言?这些问题的可能重复项非常相关。。。但在这篇文章中,他特别要求答案是一行代码。我不认为这是完全相同的问题。不管怎样,检查我的答案。。。我认为它解决了你的问题。我知道,但我仍然发现,证明我研究了这些想法,但没有发现它们有帮助是有帮助的。JornVernee为什么这里的每个人都急着投否决票并标记重复?我特别要求不要使用竞争对手-所以不,使用竞争对手的案例与不使用竞争对手的案例是不同的。谢谢你-你是真正的MVP。
List.sort(Comparator<? super E> c).
List.sort(Comparator.comparing(Point::someField))
List.sort(Comparator<? super E> c).
comparing(Function<? super T,? extends U> keyExtractor)
List.sort(Comparator.comparing(Point::someField))