-1

除了“Collections.Sort(list)”方法之外,他们是另一种对用户在输出框中单独输入的名称列表进行排序的方法吗?

import java.util.*;

public class UserInput 
{
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
Scanner stdin = new Scanner(System.in);

do {
    System.out.println("Enter a name: ");
    String strin = stdin.next();
    if (isNumeric(strin)) {
        System.out.println("Please add a non numeric value");
    } else {
        list.add(strin);
    }

    Collections.sort(list);
    System.out.println("Current list is " + list);
    System.out.println("Add more? (y/n)");

} while (stdin.next().startsWith("y"));

System.out.println("List is " + list);
String[] arr = list.toArray(new String[0]);
System.out.println("Array is " + Arrays.toString(arr));
}

public static boolean isNumeric(String str) {
return str.matches("-?\\d+(\\.\\d+)?");
}
}
4

1 回答 1

4

您可以使用 aTreeSet来存储名称。Comparator如果您需要自定义排序顺序,您也可以提供它。

编辑

正如@jahroy 评论的那样,它会起作用,因为元素(在 a 中TreeSet)在插入时会进行排序,因此之后无需执行任何排序。

于 2013-04-04T20:28:59.617 回答