2010-11-29 5 views
2

J'ai une méthode qui retourne des ensembles de jeux. Voici ce que je veux dire:Aide à la programmation Java

public static HashSet methodName(){ 
HashSet c= new HashSet(); 

c.add(x); //x is a HashSet of number 
c.add(y); //y is a Hashset of numbers 

return c; 
} 

Après la méthode retourne les collections, j'entre dans une arraylist

ArrayList<HashSet> xxx= new ArrayList<Hashset>(); 
y=methodName(); 
xxx.add(y); 

La méthode est appelée deux fois et à chaque fois que j'entre ensembles de jeux en l'arrayliste.

Ma question est. maintenant je veux passer par l'arraylist et trouver l'ensemble qui contient le plus petit nombre d'ensembles. Comment je fais ça? Merci beaucoup d'avance. Toute aide serait appréciée.

Répondre

0

Une manière simple de parcourir un tableau est un Iterator. Ceux-ci sont utilisés dans une boucle foreach, qui peut être utilisée lorsque vous connaissez le type d'éléments utilisés dans un tableau (via des génériques). Vous pouvez l'utiliser dans votre HashSet extérieur - contenant ArrayList:

for (HashSet set : xxx) { 
    // you need to iterate over the elements in your HashSet here and determine which internal Set has the most elements 
    for (Iterator iter = set.iterator(); iter.hasNext();) { 
     HashSet innerSet = (HashSet) iter.next(); 
     // do the size test 
    } 

} 
+0

pouvez-vous s'il vous plaît me montrer tout le code. Comment compareriez-vous la taille – sap

+0

'HashSet smallest = null; pour (HashSet currentSet: xxx) {if (plus petit == null || smallest.size()> currentSet.size()) plus petit = currentSet;} ' – zockman