可能重複:
Best way to sort 2 array lists?Java的獲取用戶輸入的第一個名字,姓氏,年齡,排序按字母順序,然後按年齡
package bubblesort;
import java.util.*;
public class BubbleSort {
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
Scanner input2 = new Scanner(System.in);
List<String> lastnamesList = new ArrayList();
List<String> firstnamesList = new ArrayList();
List<Integer> ageList = new ArrayList();
List<String> fullnamesList = new ArrayList();
int decider;
String EOF = "EOF";
System.out.println("Enter in 0 to sort by Last Name, Enter in 1 to sort by Age");
decider = input.nextInt();
/*if(decider == 0)
{
System.out.println("Sorting by Last Name");
for(int i=0;i<3;i++)
{
System.out.println("Please Enter in your Last Name, FirstName, Age: ");
fullnamesList.add(input2.nextLine());
}
Collections.sort(fullnamesList);
System.out.println("Sorting by Last Name: ");
System.out.println(fullnamesList);
}*/
//String[] lastnamesArray = lastnamesList.toArray(new String[lastnamesList.size()]);
//String[] firstnamesArray = firstnamesList.toArray(new String[firstnamesList.size()]);
if(decider == 1)
{
System.out.println("Sorting by Age");
for(int i=0;i<3;i++)
{
System.out.println("Please Enter in your Last Name: ");
lastnamesList.add(input2.nextLine());
System.out.println("Please Enter in your First Name: ");
firstnamesList.add(input2.nextLine());
System.out.println("Please Enter in your Age: ");
ageList.add(input.nextInt());
}
String[] firstnamesArray = firstnamesList.toArray(new String[firstnamesList.size()]);
String[] lastnamesArray = lastnamesList.toArray(new String[lastnamesList.size()]);
fullnamesList.addAll(firstnamesList);
fullnamesList.addAll(lastnamesList);
String[] fullnamesArray = fullnamesList.toArray(new String[firstnamesList.size()+lastnamesList.size()]);
Collections.sort(fullnamesList);
System.out.println("Sorting by Age");
System.out.println(fullnamesList);
}
}
public static void sortStringBubble(String x[])
{
int j;
boolean flag = true;
String temp;
while(flag)
{
flag = false;
for(j = 0;j < x.length -1 ; j++)
{
if (x [j].compareToIgnoreCase(x[j+1])>0)
{
temp = x[j];
x[j] = x[j+1];
x[j+1] = temp;
flag = true;
}
}
}
}
}
IM試圖保持名字,姓氏和年齡在一起,但我希望它按字母順序排序,而不是排序m分開。
不重複。答案顯示OP的方法是錯誤的,只需要一個ArrayList。 – fredt