Java 如何对对象类型列表进行排序
前面已经定义了Player类。我想根据特定属性对类型为Player的对象列表进行排序。但是,我得到以下语句所需的错误:“)”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
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));