エリオット:
これは私が楽しみのためにやっている学校の割り当てです。この割り当てでは、私は、ArrayListのに言葉を挿入することになっていますし、手動でのArrayListを停止し、その後、プログラムはそれをアルファベット順になっています。しかし、問題は、すべてのチュートリアルでは、Collections.sortメソッドか何かを使用するように私に語った、ですが、私たちはクラスで、私たちは明らかにそれを使用することを意味していないことを学んでいません。加えて、この割り当てのための挑戦ではなく、ArrayListのから単語を取る単語をアルファベット順に並べ、次いで、第二のArrayListにアルファベット順に単語を挿入する1つのArrayListの内部のすべてをソートすることです。缶誰かの助けが私はこのアウトを並べ替えますか?私はどこから始めればわからないので、私はアルファベット順セクションには何も書いていません。ありがとうございました。
import java.util.*;
public class LexiHeaven {
public static void main(String[] args) {
ArrayList<String> words = new ArrayList<String>();
Scanner sc = new Scanner(System.in);
System.out.println("Please enter a word into the Array (enter stop if you want to stop):");
String w = sc.nextLine();
while (!w.equals("stop")) {
words.add(w);
System.out.println("Please enter a word into the Array (enter stop if you want to stop):");
w = sc.nextLine();
}
System.out.println(words);
System.out.println("Alphabetize the ArrayList:");
String temp = "";
for (int i = 0; i < words.size(); i++) {
for (int j = i + 1; j < words.size(); j++) {
if (words.get(i).compareTo(words.get(j)) > 0) {
temp = words.get(i);
words.set(i, words.get(j));
words.set(j, temp);
}
}
}
System.out.println(words);
}
}
アブラ:
私は私のコードは私のために話をさせますので、私のように見えますが、コメントにも自分自身を説明することはできません。
次のように実装バブルソートがなければならないことをあなたのループ:
String temp;
for (int i = 0; i < words.size(); i++) {
for (int j = i + 1; j < words.size(); j++) {
if (words.get(i).compareTo(words.get(j)) < 0) {
temp = words.get(i);
words.set(i, words.get(j));
words.set(j, temp);
}
}
}
これは、リストをソートすることに注意降順なぜなら、あなたがやっているの比較のために、すなわち
if (words.get(i).compareTo(words.get(j)) < 0) {
あなたは昇順をしたい場合は、変更< 0
へ> 0
私は私の中で、説明しようとしたコメントは、ローカル変数に値を代入されていないことを、temp
ループ内。