当用户输入名称时,我希望使用compareTo方法立即对名称进行排序,并在用户输入名称时按字母顺序返回它们。
我尝试使用forLoop方法,但不完全了解compareTo方法的实际工作原理,到处都是,而且找不到确切的完成方法。
public class sortNames
{
public static void main(String[] args)
{
Scanner UI = new Scanner(System.in);
ArrayList<String> names = new ArrayList<String>();
System.out.println("Enter words, stop with -1");
while (true)
{
String input = UI.next();
if(!input.equals("-1"))
{
names.add(input);
System.out.println(names);
}
else
{
break;
}
}
}
}
我希望输出看起来像这样 (用户输入)“鲍勃” (应返回)[鲍勃] (用户输入)“ Ally” (应该返回)[Ally,Bob] 等等。
答案 0 :(得分:1)
我认为在您的情况下,您应该选择TreeSet
作为数据结构来按名称顺序存储名称。使用:
TreeSet<String> names = new TreeSet<String>();
代替:
ArrayList<String> names = new ArrayList<String>();
将解决您的问题。
答案 1 :(得分:0)
只需使用ArrayList
的方法sort
即可:
names.sort(null);
null参数指示应使用自然排序(compareTo
)。