Comment comparer deux tableau d'objets?
J'ai une classe A:
class A {
var identifier: String?
var quantity: Int = 0
}
Deux tableaux de l'Une des instances:
var array1: [A] = [a1, a2, a3, a4]
var array2: [A] = [a5, a6, a7, a8]
Je ne sais pas qui est le meilleur moyen de vérifier:
array1==array2 if a1.identifier == a5.identifier, a2.identifier == a6.identifier, a3.identifier==a7.identifier, a4.identifier==a8.identifier
en Swift.
Merci de m'aider...
matrice1 et matrice2 sera toujours de la même taille? afficher la matrice de comptage faut vérifier aussi? ou chèque doit être sur les propriétés de chaque élément dans les tableaux?
désolé, leurs résultats sont aléatoires
donc, si ils ont des densités différentes, ils devraient être classés comme inégales, droit?
Que considérez-vous de l'égalité? Si elles ont la même longueur? Si ils ont les mêmes éléments? Faire les éléments ont tous à être le même indice?
ya... je l'ai eu, mais comment parler d'un autre cas @-@
désolé, leurs résultats sont aléatoires
donc, si ils ont des densités différentes, ils devraient être classés comme inégales, droit?
Que considérez-vous de l'égalité? Si elles ont la même longueur? Si ils ont les mêmes éléments? Faire les éléments ont tous à être le même indice?
ya... je l'ai eu, mais comment parler d'un autre cas @-@
OriginalL'auteur Quang Hà | 2016-08-26
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer comme ceci:
Tripathi, chers Rahul Tripathi pouvez-vous nous expliquer votre code. C'est intéressant, mais je ne peux pas compris.C'est mon code de laisser tableau1: [Int] = [1, 2, 3, 4] laissez tableau2: [Int] = [5, 6, 7, 8] laissez résultat = zip(matrice1, matrice2).énumérés().filtre() { $1.0 == $1.1 }.map{$0.0} print(suite)
Cas si cela fonctionne, il ressemble à un copier coller du code à partir de quelque part, sans aucune explication du code!.@Rahul Tripathi
OriginalL'auteur Rahul Tripathi
Assumer vos données comme ça:
C'est la méthode pour comparer deux tableaux de gens avec l'id:
.enumerate()
pour obtenir le comte de la correspondance des éléments, mais ensuite, le filtre ressemble{ $0.0.id == $0.1.id }
OriginalL'auteur t4nhpt
Nous avons d'abord étendre
Equatable
de classe, d'avoir un SEC code, que si les 2 tableaux sont toujours de la même taille, ou si au moins la première est <= que la deuxième, vous pouvez aller avec cette solution.Faire attention à ce que vous travaillez avec des options, vous pouvez avoir à déballer avant.
OriginalL'auteur Miotz
essayer ce code, laissez-moi savoir si cela fonctionne
ensuite, vous pouvez exécuter une case comme ci-dessous
avertissement: la fonction
toDictionary
a été pris forme iciOriginalL'auteur ddb
Swift 4
La méthode suivante, il est beaucoup plus facile.
Méthode 1 - À L'Aide De Equatable Protocole
Etape 1 - créer votre classe 'A' equatable comme suit
Etape 2 - Trier vos tableaux dans l'ordre croissant ou décroissant
Etape 3 - Utilisation == ou elementsEqual comparaison
OU
Méthode 2 (Sans Equatable Protocole)
Étape 1 - trie un Tableau tel que décrit dans Method1, étape 2
Étape 2 - Utilisation elementsEqual
Lire plus sur Tableau de Comparaison ici
OriginalL'auteur Anand
J'ai trouvé cette solution très facile à https://www.hackingwithswift.com/example-code/language/how-to-find-the-difference-between-two-arrays
}
OriginalL'auteur Jeremy Andrews