if (value.compareTo(elementData[size]) >= 0) {
elementData[size + 1] = value;
size++;
} else if (value.compareTo(elementData[0]) <= 0) {
for (int i = size; i >= 0; i--) {
elementData[i + 1]= elementData[i];
}
elementData[0] = value;
size++;
}
最初のif文は、compareToから正の数を返す必要があります。私はデバッグして、それがブロックに入ることはありませんが、正の数を返すことを確認しました。文の条件が合格ではありませんが、
"str1" "str2" ...のような文字列を比較しています。 "str10"に到達して "str9"と比較するまでうまく動作します。それは "str10"は "str9"よりも小さいと言っていますが、これは意味がありますか?
10回の繰り返しごとに発生します。だから私の配列は[str0、str1、str10 ... str19、str2、str20、str21、str21、... str29..etc]
'value.compareTo(elementData [size])'が0より大きい値を返す場合、**はブロックに入ります**。それがブロックに入っていなければ、値は0より小さい。「value」と「elementData」の型は何か? –
1が9の前に来ることは分かりませんか? – stark
値と要素データはどちらも比較可能なオブジェクトです。 – igork