2017-08-04 2 views
0

J'utilise Cursor pour obtenir une chaîne de données. J'ai une liste d'entreprises et le curseur affiche le nom de la ville.Supprimer les entrées en double des chaînes extraites du curseur: Android

Cursor cursorMain = mDbHelper.getMainBranch(primaryID); 
int countMain = cursorMain.getCount(); 
String townNameMain = cursorMain.getString(cursorMain 
           .getColumnIndex("z3")); 
Log.d(townName,"town name"); 

Ceci me donne une liste de noms de villes. Maintenant, ce que je veux, c'est supprimer les entrées en double et obtenir la même taille.

Je ne veux pas changer la façon dont j'interroge mon curseur. Y at-il un moyen de supprimer les entrées en double de townNameMain ci-dessus? Quelqu'un peut-il s'il vous plaît aider.

EDIT: J'utilise une boucle pour obtenir les noms de la ville comme,

 String loc = tempList.get(i).getTownName(); 
     Log.d(loc, "locattion"); 

Je reçois les noms comme:

D/ABC 
D/ABC 
D/ABC 
D/AAA 

Voici comment puis-je vérifier les mêmes chaînes et les éliminer. S'il vous plaît aidez comme je ne peux pas le comprendre.

+0

juste aller pour la comparaison de chaînes –

+2

Ne pas ajouter l'entrée en double dans votre liste en les comparant. –

+0

qui serait '.equals()' – Zoe

Répondre

1

Vous pouvez ajouter les chaînes dans votre arraylist puis ajouter ces valeurs dans un ensemble. Définir ne permet pas les valeurs en double.

Quelque chose comme,

 ArrayList<String> List = new ArrayList<String>(); 
     List.add(loc); //assuming u r getting the strings in loc. 
     Set<String> aSet = new HashSet<String>(List); 
     List.clear(); 
     List.addAll(aSet); 

Hope this helps.

+0

Oui, cela a aidé. J'ai bouclé chacune des données localisées puis utilisé un ensemble pour stocker les données. Merci beaucoup. – devgeek

+0

Heureux que ça a marché. :) – manini

2

Utilisez un jeu ou TreeSet pour stocker notre structure de données list.Set ne permettent pas les données redondantes