Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何根据一行中的特定字段对列表进行排序?(爪哇语)_Java_Sorting - Fatal编程技术网

Java 如何根据一行中的特定字段对列表进行排序?(爪哇语)

Java 如何根据一行中的特定字段对列表进行排序?(爪哇语),java,sorting,Java,Sorting,给定一个列表(ArrayList),其中包含特定类(也称为“Point”)中的项,如何根据Point类(仅x维)中的特定字段(int类型)对列表进行排序 我试过了,我知道这个函数:Collections.sort(list\u name,new comperator\u name)通常是有效的,但我不能更改类点,也不能更改主函数中除一行以外的任何内容 有两种解决方案是可取的:一种是不带“比较”或“比较”功能的点类,另一种是带“比较”功能的点类 编辑:出于某种原因,有人建议将其作为副本—我以前也看

给定一个列表(ArrayList),其中包含特定类(也称为“Point”)中的项,如何根据Point类(仅x维)中的特定字段(int类型)对列表进行排序

我试过了,我知道这个函数:Collections.sort(list\u name,new comperator\u name)通常是有效的,但我不能更改类点,也不能更改主函数中除一行以外的任何内容

有两种解决方案是可取的:一种是不带“比较”或“比较”功能的点类,另一种是带“比较”功能的点类

编辑:出于某种原因,有人建议将其作为副本—我以前也看到过,但特别要求提供一种不需要实现comperator的解决方案。

现在Java 8列表已经

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))