在Java中按姓氏和名字对对象的ArrayList进行排序

我有一个基于运动的不同类型球员的arrayList。我需要按姓氏对arrayList中的播放器列表进行排序以开始。如果2个玩家的姓氏相同,则需要按名字对这2个玩家进行排序。示例:格式姓氏姓氏Williams

Robert Phillips Warren Doe John Phillips Mark

输出应为Doe John Phillips Mark Phillips Warren Williams Robert

我现在所拥有的仅按我的代码中的第一个或最后一个atm进行排序。

   public static void sortPlayers(ArrayList playerList) {

for (int i = 0; i < playerList.size(); i++) {

for (int j = 0; j < playerList.size(); j++) {

Collections.sort(playerList, new Comparator() {

public int compare(Object o1, Object o2) {

PlayerStats p1 = (PlayerStats) o1;

PlayerStats p2 = (PlayerStats) o2;

return p1.getPlayerLastName().compareToIgnoreCase(p2.getPlayerLastName());

}

});

}

}

}

回答:

将比较器更改为:

            public int compare(Object o1, Object o2) {

PlayerStats p1 = (PlayerStats) o1;

PlayerStats p2 = (PlayerStats) o2;

int res = p1.getPlayerLastName().compareToIgnoreCase(p2.getPlayerLastName());

if (res != 0)

return res;

return p1.getPlayerFirstName().compareToIgnoreCase(p2.getPlayerFirstName())

}

以上是 在Java中按姓氏和名字对对象的ArrayList进行排序 的全部内容, 来源链接: utcz.com/qa/414633.html

回到顶部