まず、配列以外のものをどこで使うかを並べ替えるより良い方法があることを知っています。これは、ユーザーが文字列を配列に格納し、削除し、表示し、並べ替えることができるクラスの割り当てです。私はここからどこに行くのかが完全に失われています。バブルソートを使用しようとしていて、配列内の最初のエントリがソートされない場合を除いて、すべてが機能します。 null値をフィルタリングすることでヌルポインタ例外を回避しています。なぜなら、私のif文が長すぎるからです。Java- compareTo()メソッドを使用して文字列配列を手動でソート
private void sortItems(String[] cargohold) {
String temp;
for (int i = 0; i < cargohold.length - 1; i++) {
for (int j = 1; j < cargohold.length; j++) {
if (cargohold[i] != null && cargohold[j] != null && (cargohold[i].compareTo(cargohold[j]) < 0)) {
temp = cargohold[j];
cargohold[j] = cargohold[i];
cargohold[i] = temp;
}
}
}
}
私はこれを行うためのさまざまな方法の束を試してみましたが、私はこれが動作しない理由何らかの正当な理由を見つけることができません。 Stack Overflowで見つけられるものはすべて例を通して見てきましたが、誰も同じ問題を抱えていません。 "Derp"、 "Herp"、 "Sam"、 "Alfred"、 "Bill"の5つの文字列を持つことができます。この種の "Derp"、 "Alfred"、 "Bill" 、 "Herp"、 "Sam"。ガイダンスのために事前に感謝します。
まず、これはバブルソートではありません。最初の問題は – WIR3D
@ WIR3Dです。なぜそうでないのか説明してください。バブルソートの内部ループは、通常、「1」ではなく、「i + 1」で開始する。さて、変数(配列 '' cargohold''ではなく '' String [] cargohold'')ではなく、型の後に配列の括弧を入れてください。 – Turing85