Tri arraylist dans l'ordre alphabétique (insensible à la casse)
J'ai une chaîne arraylist names
qui contient des noms de personnes. Je veux la liste de tableaux dans l'ordre alphabétique.
ArrayList<String> names = new ArrayList<String>();
names.add("seetha");
names.add("sudhin");
names.add("Swetha");
names.add("Neethu");
names.add("ananya");
names.add("Athira");
names.add("bala");
names.add("Tony");
names.add("Karthika");
names.add("Nithin");
names.add("Vinod");
names.add("jeena");
Collections.sort(names);
for(int i=0; i<names.size(); i++)
System.out.println(names.get(i));
J'ai essayé de trier la liste dans la façon décrite ci-dessus. Mais c'est afficher le tableau trié comme:
Athira
Karthika
..
..
ananya
bala
...
mais je ne veux pas le rendre sensible à la casse. Je veux le résultat sous la forme:
ananya
Athira
bala
Vous devez vous connecter pour publier un commentaire.
Personnalisé
Comparator
devrait aiderOu si vous utilisez Java 8:
for (TYPE newvariable : ARRAYTYPE arrayname) { Log.i("YOURAPPTAG", newvariable); }
String.CASE_INSENSITIVE_ORDER
, alors vous verrez que A1 est condiredless
que A10 simplement parce que la longueur est plus petite. Il n'est pas "naturelle sorte de" soutien hors de la boîte, vous voudrez peut-être jeter un coup d'oeil à stackoverflow.com/questions/1262239/...La chose la plus simple à faire est de:
essayer ce code
Basé sur la ci-dessus mentionné réponses, j'ai réussi à le comparer à mon habitude les Objets de la Classe comme ceci:
Vous avez besoin pour utiliser des comparateurs qui utilisera
compareToIgnoreCase
, pas compareTo.À partir de Java 8 vous pouvez utiliser
Stream
:Il obtient un flux qui
ArrayList
, puis il les trie (en ignorant le cas). Après cela, le flux de données est converti en un tableau qui est converti enArrayList
.Si vous imprimez le résultat à l'aide de:
vous obtenez le résultat suivant: