所以我在排序 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) + " ");
}
}