gpt4 book ai didi

java - 如何修复我的排序方法以便我得到名称的字母顺序

转载 作者:行者123 更新时间:2023-12-02 01:34:14 24 4
gpt4 key购买 nike

我正在尝试修复我的排序方法。我正在从 txt 文件中读取并尝试按字母顺序获取它们。

我不能使用类似的工具然后使用collections.sort(),因为我的老师不允许这样做。

//How I am trying to sort
public static void sortPlayers(ArrayList<BingoPlayer> players){
BingoPlayer temp;
int value = 0;
for(int i = 0; i < players.size()-1; i++)
{
value = compareTo(players.get(i), players.get(i + 1));

if(value < 0 || value == 0){
//continue;
}
else if(value > 0){
temp = players.get(i);
players.set(i, players.get(i + 1));
players.set(i + 1, temp);
}
}

}
//How am I comparing.
public static int compareTo(BingoPlayer player1, BingoPlayer player2){
if(player1.firstName.compareTo(player2.firstName) < 0)
return player1.firstName.compareTo((player2.firstName));
else if(player1.firstName.compareTo(player2.firstName) > 0)
return player1.firstName.compareTo((player2.firstName));
else
if (player1.lastName.compareTo(player2.lastName) < 0)
return player1.lastName.compareTo((player2.lastName));
else if (player1.lastName.compareTo(player2.lastName) > 0)
return player1.lastName.compareTo((player2.lastName));
else
return 0;
}

这是我正在读取的txt文件:

50.00
10
James,Smith,50.0
Michael,Smith,50.0
Robert,Smith,50.0
Maria,Garcia,50.0
David,Smith,50.0
Maria,Rodriguez,50.0
Mary,Smith,50.0
Maria,Hernandez,50.0
Maria,Martinez,50.0
James,Johnson,50.0

最佳答案

您需要使用嵌套for循环进行排序

public static void sortPlayers(ArrayList<BingoPlayer> players){
BingoPlayer temp;
int value = 0;
for(int i = 1; i <= players.size()-1; i++)
{

for(int j=i;j>0;j--){
value = compareTo(players.get(j), players.get(j - 1));

if(value < 0){
temp = players.get(j);
players.set(j, players.get(j - 1));
players.set(j - 1, temp);
}
}
}

}

我还稍微优化了您的比较功能:

public static int compareTo(BingoPlayer player1, BingoPlayer player2){
if(player1.firstName.compareTo(player2.firstName) != 0)
return player1.firstName.compareTo((player2.firstName));
else
return player1.lastName.compareTo((player2.lastName));
}

关于java - 如何修复我的排序方法以便我得到名称的字母顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55486152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com