按字母顺序排序,无需排序方法

时间:2013-04-04 20:26:42

标签: java methods sorting

他们是另一种方法来排序用户在输出框中单独输入的名称列表而不是“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+)?");
}
}

1 个答案:

答案 0 :(得分:4)

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

修改

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