2015-03-06 2 views
-1

J'ai essayé de chercher, mais en vain, j'espère que vous pouvez m'aider.Comparer des variables pour des objets dans ArrayList (Java)

J'ai un ArrayList contenant des objets, qui ont tous 4 variables entières. Je veux que mon programme pour lancer un Exception, si certaines des variables pour ces objets sont identiques .. Je vais essayer d'écrire dans pseudocode:

for(Object x : ArrayList) 
{ 
    if(x.Variable == someVariables)// all the variables for the objects in the arraylist 
    { 
     throw exception 
    } 
} 

Ceci est une question de débutant, mais j'espère que vous pouvez me aider out, merci.

+0

Est-ce votre code ou pseudo-réel? Ne vous attendez pas à ce que nous commentiez votre code, si vous ne nous montrez pas votre code. Qu'est-ce que vous avez des problèmes avec? – Stultuske

+0

Veuillez ajouter votre objet qui contient les valeurs entières – Neil

Répondre

1

l'intérieur de votre boucle les ajouter dans un ensemble si la méthode d'ajout retourne false en double existent

for(Object x : ArraList) 
{ 
    Set<Integer> set=new HashSet<Integer>(); 
    for(int i:x.getAllValues()){ 
     boolean status=set.add(i) 
     if(status==false){ 
     //throw exception 
     } 
    } 
} 

écriture méthode get valeurs dans votre classe d'objets

OU

Il suffit de créer un ensemble de la liste et vérifier leur longueur

Set<Integer> set= new HashSet<Integer>(list); 
if(set.size()!=list.size()){ 
//contains duplicates 
} 
+0

Vous pouvez simplement créer un ensemble à partir de la liste, puis voir si les tailles correspondent. –

+0

@mike a ajouté merci – Burusothman

+0

@MikeSamuel: Il ne s'agit pas de vérifier si la liste contient seulement des va- leurs uniques, il s'agit de vérifier les objets individuels de la liste, s'ils ont un état valide (les 4 membres doivent être uniques) – xmoex

1

Je recommande d'implémenter votre vérification de valeur dans votre classe, qui est le type de votre Object. Pour moi, il semble important qu'une «chose» comme votre Object puisse effectuer une vérification de validité de ses propres valeurs. Je vous donne un exemple:

public class Container { 

    // declaration of your four variables 

    // other code, maybe getters and setters 

    /** 
    * Checks if all variables are pairwise inequal 
    * @return true if so, false otherwise 
    */ 
    public boolean isValid() {  
     // check vars 
    } 
} 

De cette façon, votre routine pour vérifier tous les objets de votre liste est très facile:

for (Container x : arrayList) { 
    if (!x.isValid()) { 
     throw new RuntimeException("A bad thing just happend!"); 
    } 
}