【发布时间】:2015-02-17 14:44:57
【问题描述】:
如何按用户姓氏对ArrayList 进行排序?我的程序按名字顺序打印出名字。还有另一种collections.sort(..); 方法吗?或者不制作地图的方式。
public static void main(String[] args) throws FileNotFoundException {
String check = "y";
do {
Scanner fileRead = new Scanner(System.in);
System.out.println("Enter the name of the file: ");
File myFile = new File(fileRead.next());
ArrayList<String> names = new ArrayList<>();
Scanner scanTwo = new Scanner(myFile);
while (scanTwo.hasNextLine()) {
names.add(scanTwo.nextLine());
}
Collections.sort(names);
for (String name : names) {
System.out.println(name);
}
System.out.println();
Scanner ans = new Scanner(System.in);
System.out.println("Add another? y/n ");
check = ans.next();
} while (check.equals("y"));
}
【问题讨论】:
-
您需要创建一个自定义比较器,它会覆盖 compare(),然后比较姓氏。然后通过将比较器传递给它来调用 Arrays.sort()。
标签: java sorting arraylist collections