Android ArrayList itération
J'ai une liste de tableaux qui stocke les noms de Zone. Je veux vérifier cette liste pour savoir si des personnes arbitraires sont de secteur différent. Si ils sont de secteur différent, je prends une décision. J'ai réalisé cela avec le code suivant. Notez que area_IdList et area_IdListduplicate sont essentiellement les mêmes ArrayList. Est-ce code efficace ou peut-on suggérer code plus efficace ? Merci à l'Avance.
public List<String> area_IdList = new ArrayList<String>();
public List<String> area_IdListduplicate = new ArrayList<String>();
for (int i = 0; i < area_IdList.size(); i++)
{
for (int k = 1; k< area_IdListduplicate.size(); k++)
{
String sa= area_IdListduplicate.get(k);
String sb= area_IdList.get(i);
if (!sa.equalsIgnoreCase(sb))
{
some decision
}
}
}
- Pouvez-vous expliquer mieux ce que vous voulez atteindre? Vous êtes en ce moment de prendre une décision si elles ne sont PAS de la même région!
- for (int k = i+1;......sera plus efficace
- j'ai édité ma question..désolé pour l'erreur. je veux savoir s'ils sont de secteur différent
- k = i +1 sautera le premier indice (0) et lui donner OutOfBoundException lorsque vous tentez d'obtenir le dernier élément si ils ont la même taille
- Notez que area_IdList et area_IdListduplicate sont essentiellement les mêmes ArrayList. comme son sens, le premier indice(0) n'est pas nécessaire de les comparer. Et si ils ont la même taille, OutOfBoundException ne sera pas lancée
- lire mon commentaire à nouveau.
- Comme son sens, le premier indice(0) n'est pas nécessaire d'être comparé. Et si ils ont la même taille, il ne sera pas l'étape de la deuxième boucle, de sorte OutOfBoundException ne sera pas lancée
- vous êtes en droit de contrainte sur le pas de la "OutOfBoundException", j'ai pensé à la liste.get(i + 1), la méconnaissent.
Vous devez vous connecter pour publier un commentaire.
C'est plus efficace, plus rapide et plus efficace au lieu d'itération par les index.
Donc, il s'agira de vérifier, étape par étape, chaque élément de
area_IdList
avec tous les éléments enarea_idListduplicate
et à chaque fois ils n'ont pas de mach, cette décision sera prise. (Si c'est ce que vous voulez obtenir)goes faster instead of iterating by indexes
. Que voulez-vous dire?C'est un O(2N) une solution à certains des coûts de 2N mémoire à la place de N^2 temps et N coût mémoire. Dépend du nombre d'éléments que vous avez, mais cette solution aura un coût beaucoup moins élevé que la N^2 solutions.
Comme pour ne pas utiliser d'index, voir Une Meilleure Utilisation De La Syntaxe De La Boucle
Vous pouvez essayer comme ceci