比较ArrayList(Java)中对象的变量

比较ArrayList(Java)中对象的变量,java,Java,我试着寻找,但没有用,我希望你能帮助我 我有一个ArrayList包含对象,它们都有4个整数变量。如果这些对象的某些变量相同,我希望我的程序抛出一个异常。。我将尝试用伪代码编写: for(Object x : ArrayList) { if(x.Variable == someVariables)// all the variables for the objects in the arraylist { throw exception } } 这是一个

我试着寻找,但没有用,我希望你能帮助我

我有一个
ArrayList
包含对象,它们都有4个整数变量。如果这些对象的某些变量相同,我希望我的程序抛出一个
异常。。我将尝试用伪代码编写:

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

这是一个新手问题,但我希望您能帮助我,谢谢。

在for循环中,如果add方法返回false replice exist,请将它们添加到集合中

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
      }
  }
}
for(对象x:ArraList)
{
Set=newhashset();
for(int i:x.getAllValues()){
布尔状态=集合。添加(i)
如果(状态==false){
//抛出异常
}
}
}
在对象类中编写get values方法

只需从列表中创建一个集合并检查其长度

Set<Integer> set= new HashSet<Integer>(list);
if(set.size()!=list.size()){
//contains duplicates
}
Set Set=newhashset(列表);
if(set.size()!=list.size()){
//包含重复项
}

我建议在类内部执行值检查,类是
对象的类型。对我来说,像您的
对象这样的“东西”
能够对其自身的值执行有效性检查似乎很重要。我举一个例子:

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
    }
}
通过这种方式,检查列表中所有对象的例行程序非常简单:

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

这是伪代码还是您的实际代码?如果您不向我们显示代码,请不要期望我们对您的代码发表评论。您遇到的问题是什么?请添加包含整数值的对象。您可以从列表中创建一个集合,然后查看大小是否匹配。@MikeSamuel:这不是检查列表是否只包含唯一值,而是检查列表中的各个对象是否具有有效状态(所有4个成员VAR必须是唯一的)