比较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必须是唯一的)