Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java中的contains在添加到两维列表之前检查重复项_Java_List_Collections - Fatal编程技术网

使用java中的contains在添加到两维列表之前检查重复项

使用java中的contains在添加到两维列表之前检查重复项,java,list,collections,Java,List,Collections,我有以下代码: List<Check<String, String>> listAdd = new ArrayList<Check<String, String>>(); for (list1<String, String> h : list1_a) { for (list2<String, String> s : list2_a) { if (condition) {

我有以下代码:

List<Check<String, String>> listAdd = new ArrayList<Check<String, String>>();
    for (list1<String, String> h : list1_a) {
        for (list2<String, String> s : list2_a) {
            if (condition) { 
                //if(!listAdd.contains(Check(h.getString(),s.getString())
                listAdd.add(new Check(h.getString(),s.getString()));
            }
        }
    }
List listAdd=new ArrayList();
对于(列表1 h:列表1_a){
对于(列表2 s:列表2_a){
如果(条件){
//如果(!listAdd.contains)(检查(h.getString(),s.getString())
添加(新检查(h.getString(),s.getString());
}
}
}
当列表中有列表时,我无法理解如何使用contains。请提供帮助。谢谢尝试以下操作:

if (condition) {
   Check c = new Check(h.getString(), s.getString());
   if (!list.contains(c)) {
       list.add(c);
   }
}
确保在
Check
类中实现了
equals()
hashCode()
方法


另一种方法是使用
java.util.Set
接口的一些实现来切换
java.util.List
java.util.Set
子类支持内部的唯一对象,因此您将不再需要担心某个对象是否存在于您的集合中。

如果需要,请尝试用它代替
//(!listAdd.contains(选中(h.getString(),s.getString());


使用
Set
类型是不可能的吗?@ChrisCooney我对java完全陌生,无法有效地解决这个问题@ChrisCooney的意思是,如果
listAdd
的类型是
Set
而不是
List
,那么您可以添加,而不必检查它是否已经存在;因为它只会在它还不存在的情况下添加xist.无论哪种方式,
类检查
都需要有行为良好的
equals
hashCode
方法,您可以使用这些方法的代码更新问题,以便其他人可以使用其类型的.equals()方法来帮助正确的^contains()。因此,您必须在检查中实现这一点。java
if(!listAdd.contains(new Check(h.getString(),s.getString());