У меня проблема с сортировкой ArrayList. Я должен использовать в методе вставки, поэтому я пишу этот код, основываясь на этом. Для этого необходимо, чтобы пользователь вводил 4 3-буквенных слова, а затем сортировал их в ArrayList в алфавитном порядке. Я пробовал разные вещи, но когда я запускаю код, он сортирует первое слово, но повторяет его. Выход действительно зависит от слов, которые я поставил. Я чувствую, что моя проблема в цикле while, но я пытаюсь по-разному, но у меня такая же проблема. Любая помощь приветствуется.Проблемы с сортировкой
import java.util.ArrayList;
import TerminalIO.KeyboardReader;
public class Insert{
public static void main(String[] args) {
int i,j;
String tmp;
ArrayList<String> words = new ArrayList<String>();
int run = 4;
KeyboardReader reader = new KeyboardReader();
while(run!=0) {
words.add(reader.readLine("Enter a three letter word: "));
run--;
}
for (j=1; j<words.size(); j++) {
i = j - 1;
tmp = words.get(j);
while ((i>=0) && (tmp.compareTo(words.get(i)) < 0)){
words.set(i,tmp);
words.set(i+1,words.get(i));
i--;
}
//words.set(i+1,tmp);
}
for(int r = 0; r<words.size(); r++)
System.out.print(words.get(r) + " ");
}
}
Вы должны реализовать свой собственный вид или просто требуется Сортировать? Если вы просто хотите сортировать, попробуйте Collections.sort (words). Будет сортироваться в алфавитном порядке. – arynaq
Я думаю, что он студент; студенты должны делать что-то вручную хотя бы один раз. –
Да, я ученик, концепция Collection.sort не подходит для меня, потому что я пытаюсь научиться модифицировать метод вставки для сортировки строк. – Johngianni