他们是另一种方法来排序用户在输出框中单独输入的名称列表而不是“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+)?");
}
}
答案 0 :(得分:4)
您可以使用TreeSet
存储名称。如果您需要自定义排序顺序,也可以为其提供Comparator
。
修改强>
正如@jahroy评论的那样,它会起作用,因为元素(在TreeSet
中)在插入时会被排序,因此之后不需要执行任何排序。