Java 不使用排序方法按字母顺序排序
它们是否是对用户在输出框中单独输入的名称列表进行排序的另一种方法,而不是Collections.Sortlist方法Java 不使用排序方法按字母顺序排序,java,methods,sorting,Java,Methods,Sorting,它们是否是对用户在输出框中单独输入的名称列表进行排序的另一种方法,而不是Collections.Sortlist方法 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 {
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+)?");
}
}
您可以使用来存储名称。如果需要自定义排序顺序,还可以为其提供比较器
编辑
正如@jahroy所评论的,它会起作用,因为树集中的元素在插入时会被排序,所以之后不需要执行任何排序。您可以手动实现任意数量的字符串排序算法,但为什么不想使用默认的库实现呢?如果您不想浪费时间使用每个条目对整个集合重新排序,请使用插入时进行排序的集合,例如TreeSet->There's nothing stock you implementing any sort algorithm。首先想到的是传统的泡泡式……为什么要重新发明轮子?如果你想做一个自定义排序,请使用Collections.sort和你自己的Comparator。我猜这是一个家庭作业;方法,在这里查找:完全正确。谢谢你的补充。@jahroy:你应该更准确一些。“你所说的只适用于树集,而不适用于任何一集。”贾罗伊说。设置以任意顺序存储和迭代。例外情况是SortedSet,例如TreeSer,它按排序顺序迭代,以及特殊的LinkedHashSet,它按插入顺序迭代。@Bohemian-非常正确。我简单地混淆了分类集合与独特集合的概念。我所要做的就是让NilsH补充说,树集的顺序将在插入时保持,这一点最初并没有提到。很抱歉造成混淆。您能提供一些示例,说明我如何在代码中实现树集吗?我看了这个例子,有点困惑