如何根据姓氏对链接列表进行排序?

时间:2014-06-03 02:33:46

标签: java linked-list

我有一个程序,它从控制台请求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);
    }

2 个答案:

答案 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上执行以下操作。

  1. 将全名分为两个列表,“名”和“姓”包含您的名字和姓氏 名称。
  2. 空的“姓氏”
  3. 将“名字”复制到“姓氏”。