Как отсортировать arrayList, используя CompareTo - PullRequest
0 голосов
/ 27 января 2019

Поскольку пользователь вводит имена, я хочу, чтобы имена сортировались мгновенно, используя метод 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;
        }
    }
 }
}

Я бы хотел, чтобы вывод выглядел примерно так (Пользовательвходит) "Боб" (должен вернуться) [Боб] (пользователь входит) "Союзник" (должен вернуться) [Союзник, Боб] и т. д. с другими именами.

Ответы [ 2 ]

0 голосов
/ 27 января 2019

Я думаю, в вашем случае вы должны выбрать TreeSet в качестве структуры данных для хранения имен в отсортированном порядке.Используйте:

TreeSet<String> names = new TreeSet<String>();

Вместо:

ArrayList<String> names = new ArrayList<String>();

Решит вашу проблему.

0 голосов
/ 27 января 2019

Просто используйте метод ArrayList sort:

names.sort(null);

Пустой параметр указывает, что следует использовать естественное упорядочение (compareTo).

...