我有一个程序,它从控制台请求10个人的名字和姓氏,然后将它们添加到单个实体下的链接列表中,' fullName'。有没有办法使用Collections.sort()根据姓氏而不是第一个名称对名称进行排序。需要保留名字和姓氏的顺序。这就是我到目前为止所做的:
public void requestNames(){
for(int i = 1; i < 11; i++){
// Request first name.
System.out.print("Enter first name of friend # " + i + ":");
String fName = scanner.nextLine();
// Request last name.
System.out.print("Enter last name of friend # " + i + ":");
String lName = scanner.nextLine();
// Concatenate first and last name and hold in fullName variable.
String fullName = fName + " " + lName;
myList.add(fullName);
}
scanner.close();
}
public void sortList(){
Collections.sort(myList);
}
答案 0 :(得分:3)
是。如果您使用Java Collections API中的LinkedList
,则可以为此操作编写自定义比较器。
Collections.sort(myList, new Comparator<String, String>() {
public int compare(String left, String right) {
String leftLast = String.split("\\s")[1];
String rightLast = String.split("\\s")[1];
return leftLast.compareTo(rightLast);
}
}
答案 1 :(得分:0)
以图形方式,将您的名字和姓氏结合起来创建一个LinkedList“全名”。执行 在LinkedList上执行以下操作。