64 votes

Classique ensemble des opérations pour java.util.Collection

Est-il une fonctionnalité intégrée pour l'ensemble classique opérations sur le java.util.Classe de Collection? Mon spécifiques de mise en œuvre serait de ArrayList, mais cela sonne comme quelque chose qui doit s'appliquer pour toutes les classes de Collection. Je suis à la recherche de quelque chose comme:

ArrayList<Integer> setA ...
ArrayList<Integer> setB ...
ArrayList<Integer> setAintersectionB = setA.intersection(setB);
ArrayList<Integer> setAminusB = setA.subtract(setB);

Après quelques recherches, je n'ai pu trouver de solutions locales. Aussi, je me rends compte que j'ai peut être source de confusion sur la notion de "Jeu" avec l'idée d'une "Collection", de ne pas permettre et permettre les doublons, respectivement. Peut-être c'est vraiment juste une fonctionnalité pour l'Ensemble de l'interface?

Dans le cas où l'on ne connaît pas toutes les fonctionnalités intégrées, peut-être que nous pourrions utiliser comme une base pour la pratique standard Java jeu de code de l'opération? J'imagine que cette roue a été réinventé à de nombreuses reprises.

108voto

Tom Hawtin - tackline Points 82671

L'Intersection est fait avec de la Collection.retainAll; la soustraction avec Collection.removeAll; union avec la Collection de.addAll. Dans chaque cas, comme agira comme un ensemble et une Liste de loi comme une liste. Comme mutable objets, ils fonctionnent en place. Vous devez explicitement copie si vous souhaitez conserver l'original mutable objet non mutée.

15voto

Bno Points 5688

Je recommande Google Goyave. Les Ensembles de classe semble avoir exactement ce que vous cherchez. Il a une intersection méthode et une différence de méthode.

Cette présentation est probablement quelque chose que vous voulez regarder si vous êtes intéressé. Il se réfère à Google Collections, qui était de Goyave son nom d'origine.

7voto

PhiLho Points 23458

Vous êtes à la recherche pour java.util.Définir l'interface (et sa mise en oeuvre HashSet et TreeSet (tri))?
L'interface définit removeAll(Collection c) qui ressemble à soustraire(), et retainAll(Collection c) qui ressemble à une intersection.

Prograide.com

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.

Powered by:

X