Rendre l'élément ArrayList insensible à la casse
Dans mon application Java j'ai besoin de comparer les deux de la liste de l'élément s'il est similaire ou non.
En bref supposons que j'ai deux liste déclarée comme indiqué ci-dessous
List<String> a = new ArrayList<String>();
a.add("one");
a.add("three");
a.add("two");
Collections.sort(a);
List<String> a1 = new ArrayList<String>();
a1.add("ONE");
a1.add("two");
a1.add("THREE");
Collections.sort(a);
Si j'écris une condition de l'égalité, il ne parvient pas, comme certains de la liste de l'élément est dans des cas comme
if(a.equals(a1)){
System.out.println("equal");
} else{
System.out.println("not equal");
}
Il va afficher le résultat "Pas égal"
Alors merci de me dire comment je peux faire la liste de l'élément sensible à la casse dans le langage Java.
Merci et à l'égard
source d'informationauteur Satya
Vous devez vous connecter pour publier un commentaire.
Pourquoi ne pas utiliser plutôt un SortedSet avec un casse comparateur ?
Avec le Chaîne de caractères.CASE_INSENSITIVE_ORDER comparateur de
Votre code est réduit à
Et vos égaux conditions devrait fonctionner sans problème
MODIFIER modifié en fonction des commentaires. Merci à vous tous de me corriger.
Vous devez utiliser
afin de trier ignorant la casse, vous pouvez utiliser le equalsIgnoreCase méthode sur la Chaîne à comparer à des valeurs
Vous pouvez bien sûr créer votre propre CaseInsensitiveList classe, nous avons un CaseInsensitiveSet & CaseInsensitiveMap dans notre base de code
Vous auriez à le faire manuellement:
Vous pouvez aussi enrouler une Ficelle dans une classe d'assistance et de mettre en œuvre la est égal à & comparer méthodes pour cela.
Vous aurez besoin de redéfinir la méthode equals() sur la liste, donc il fait ce que vous voulez. Jetez un oeil à la présente liste de tableaux.equals() et de l'adapter afin qu'il compare avec equalsIgnoreCase au lieu de equals().
Comment sur l'écriture d'une classe Wrapper de la Liste que vous utilisez, cela permettrait d'éviter d'avoir incohérent de stockage des éléments.
Pour trier la liste des Chaînes en ignorant la casse