java如何比较和排序树集中的项目?
我有一门课叫《玩家与输赢》
public class Player
{
private String name ;
private int ranking=0;
private int wins = 0 ;
private int lossess = 0 ;
private boolean isPrivate =false;
private int experiance =0;
public float getWinRatio()
{
if( getExperiance() <= 0 ) return -0.0f ;
return (getWins()/(float)getExperiance()) ;
}
我有一个有10000个玩家对象的树集。我如何将它们相互比较,然后根据这个赢比函数对它们进行排序
# 1 楼答案
您需要在类中正确地声明方法,以便对其进行编译。但是一旦你这样做了,你就可以像这样把一个
Comparator
传递给TreeSet
在这里,我只是将值添加到树集
瞧!它们被分类了
如果你想按相反的顺序对它们进行排序,你可以这样分配树集
对于你的胜利配给排序,你可以像这样颠倒顺序
# 2 楼答案
你需要用
Comparator
创建一个新的TreeSet
,它根据winRatio
比较玩家。然后,你只需要把玩家从原来的TreeSet
复制到新的TreeSet
。以下是参考代码:输出: