Permettez-moi d'abord de dire que je sais qu'il existe de meilleurs moyens de trier les emplacements où vous pourriez utiliser autre chose qu'un tableau. C'est une affectation pour la classe où l'utilisateur peut stocker des chaînes dans un tableau, les supprimer, les afficher et les trier. Je suis complètement perdu à l'idée de partir d'ici. J'essaie d'utiliser un tri à bulles et tout fonctionne sauf si la première entrée de mon tableau ne va pas trier. J'évite les exceptions de pointeur nul en filtrant les valeurs nulles, ce qui explique pourquoi mon instruction if est si longue.Java- Triez manuellement un tableau de chaînes en utilisant la méthode 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;
}
}
}
}
J'ai essayé un tas de différentes façons de le faire et je ne peux trouver aucune bonne raison pour laquelle cela ne devrait pas fonctionner. J'ai regardé à travers tout ce que j'ai pu trouver sur Stack Overflow à partir d'exemples et personne n'a le même problème que moi. Pour récapituler, je peux avoir 5 chaînes, "Derp", "Herp", "Sam", "Alfred", "Bill" et ce genre me donnera: "Derp", "Alfred", "Bill" , "Herp", "Sam". Merci d'avance pour les conseils.
Tout d'abord, ce n'est pas une sorte de bulle, il y a le premier numéro – WIR3D
@ WIR3D vous devriez expliquer pourquoi il ne l'est pas. La boucle interne d'un tri à bulles commence normalement à "i + 1", pas à "1". En aparté: s'il vous plaît wirte les parenthèses de tableau après le type, pas la variable ('String [] cargohold' au lieu de' String cargohold [] '). – Turing85