Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.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_List_Collections_Comparator - Fatal编程技术网

Java 如何对对象类型列表进行排序

Java 如何对对象类型列表进行排序,java,list,collections,comparator,Java,List,Collections,Comparator,前面已经定义了Player类。我想根据特定属性对类型为Player的对象列表进行排序。但是,我得到以下语句所需的错误:“)” Comparator <Player> compareBydefensiveDuel= (Player p1, Player p2)->(p1.getD().compareTo(p2.getD())); 在所有这些情况下,它都要求在播放器后面加“')。如何解决此问题?对于java 8方法引用,不能使用括号 而不是Player::getD() 使用Pla

前面已经定义了Player类。我想根据特定属性对类型为Player的对象列表进行排序。但是,我得到以下语句所需的错误:“)”

Comparator <Player> compareBydefensiveDuel= (Player p1, Player p2)->(p1.getD().compareTo(p2.getD()));

在所有这些情况下,它都要求在播放器后面加“')。如何解决此问题?

对于java 8方法引用,不能使用括号

而不是Player::getD() 使用Player::getD

Collections.sort(PlayerList,Comparator.comparing(Player::getD)); 

Collections.sort(PlayerList、Comparator.comparating(Player::getD))
getD()的返回类型是什么?如果
Double
,那么您的代码应该可以正常工作。如果
double
,那么您需要这样做:
(播放器p1,播放器p2)->double.compare(p1.getD(),p2.getD())
FYI:如中所示,当您调用一个方法时,语法是
xxx.method()
。构建方法引用时,语法是
xxx::method
,没有
()
,第一个代码示例肯定不会产生您描述的错误。如果
getD()
返回原语类型
double
,您将得到类似“double不能被解除引用”的结果。
Collections.sort(PlayerList,Comparator.comparing(Player::getD));