J’ai utilisé NSSets plusieurs fois dans mes applications, mais n’avez jamais créé un moi-même.
Ma question est :
Quand est-il préférable d’utiliser un NSSet comme apposées à un NSArray ? et pourquoi ?
J’ai utilisé NSSets plusieurs fois dans mes applications, mais n’avez jamais créé un moi-même.
Ma question est :
Quand est-il préférable d’utiliser un NSSet comme apposées à un NSArray ? et pourquoi ?
L'image de la Documentation d'Apple décrit très bien:
Array
est un commandés (ordre est maintenu lorsque vous ajoutez des) séquence d'éléments
[array addObject:@1];
[array addObject:@2];
[array addObject:@3];
[array addObject:@4];
[array addObject:@6];
[array addObject:@4];
[array addObject:@1];
[array addObject:@2];
[1, 2, 3, 4, 6, 4, 1, 2]
Set
est un distinct (pas de doublons), non triées de la liste des éléments
[set addObject:@1];
[set addObject:@2];
[set addObject:@3];
[set addObject:@4];
[set addObject:@6];
[set addObject:@4];
[set addObject:@1];
[set addObject:@2];
[1, 2, 6, 4, 3]
Lorsque l’ordre des éléments dans la collection n’est pas important, ensembles offrent de meilleures performances pour trouver des objets dans la collection.
La raison est qu’une valeurs de hachage utilise ensemble pour trouver des objets (comme dans un dictionnaire) tout en un tableau doit parcourir tout son contenu pour trouver un objet particulier.
La meilleure réponse est c'est Apple propre documentation.
La principale différence est que, NSArray
est une collection ordonnée et NSSet
est une collection non ordonnée.
Il y a plusieurs articles qui parlent de la différence de vitesse entre les deux, à l'instar de ce un. Si vous êtes une itération à travers une collection non ordonnée, NSSet
est grande. Cependant, dans de nombreux cas, vous avez besoin de faire des choses que seul un NSArray
pouvez le faire, de sorte que vous sacrifier la vitesse pour ces capacités.
NSSet
NSArray
C'est tout ce qu'il est vraiment de! Laissez-moi savoir si cela aide.
Un tableau est utilisé pour accéder aux éléments par leur index. Tout élément qui peut être inséré dans le tableau de multiples reprises. Les tableaux mantain l'ordre de leurs éléments.
Un ensemble est utilisé essentiellement pour vérifier si l'élément est dans la collection ou pas. Les objets n'ont pas de notion d'ordre ou de l'indexation. Vous ne pouvez pas avoir un élément dans un ensemble à deux reprises.
Si un tableau veut vérifier s'il contient un élément, il doit vérifier tous ses éléments. Les ensembles sont conçus pour utiliser des algorithmes plus rapides.
Vous pouvez imaginer un jeu comme un dictionnaire sans valeurs.
Remarque ce tableau et ne sont pas les seules structures de données. Il y a d'autres, par exemple, File, Pile, Tas, Tas de Fibonacci. Je vous recommande de lire un livre sur les algorithmes et structures de données.
Consultez wikipedia pour plus d'informations.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.