そのため、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) + " ");
}
}