java - 如何使用 compareTo 对 arrayList 进行排序
问题描述
当用户输入名称时,我希望使用 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;
}
}
}
}
我希望输出看起来像这样(用户输入)“Bob”(应该返回)[Bob](用户输入)“Ally”(应该返回)[Ally,Bob] 等等其他名称。
解决方案
我认为在您的情况下,您应该选择TreeSet
按排序顺序存储名称的数据结构。利用 :
TreeSet<String> names = new TreeSet<String>();
代替 :
ArrayList<String> names = new ArrayList<String>();
会解决你的问题。
推荐阅读
- laravel - Laravel Blade Vue - 无效或意外的令牌
- reactjs - 如何仅更改从动态创建的芯片阵列中单击的芯片的颜色
- sql - 在单个查询中创建多个表
- entity-framework - EF 延迟加载代理拦截器
- python - 如何使用熔化将多个列名作为 val_vars 传递?
- python - 输入数字总和
- vue.js - 当更新同一对象的另一个属性时,如何自动更新数组中对象的属性?
- linux - 防止 git 在 Linux 中没有 chmod 权限的文件系统上失败
- javascript - 将项目移动到 Angular 包格式
- excel - 根据条件将值从一张纸复制到另一张纸