Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.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 在CollectionUtils.isEqualCollection中使用赤道比较两个集合_Java_Generics_Collections_Interface - Fatal编程技术网

Java 在CollectionUtils.isEqualCollection中使用赤道比较两个集合

Java 在CollectionUtils.isEqualCollection中使用赤道比较两个集合,java,generics,collections,interface,Java,Generics,Collections,Interface,我必须使用Apache CollectionUtils.isEqualCollection比较两个集合。 它们具有相同的接口压缩,并有一个比较方法: public boolean isTheSame(Compress compr); 但我不知道如何在代码中添加赤道 来自文档: isEqualCollection(Collection<? extends E> a, Collection<? extends E> b, Equator<? super E>

我必须使用Apache CollectionUtils.isEqualCollection比较两个集合。 它们具有相同的接口压缩,并有一个比较方法:

public boolean isTheSame(Compress compr);
但我不知道如何在代码中添加赤道

来自文档:

isEqualCollection(Collection<? extends E> a, Collection<? extends E> b, Equator<? 
super E> equator)
Returns true iff the given Collections contain exactly the same elements with exactly the same cardinalities.
我应该把赤道的方法放在我的收集课上吗? 或者我应该这样写(不是工作代码):

。。。
Eq赤道=新Eq();
返回集合UTILS.isEqualCollection(过滤器3、过滤器4、赤道);
}
公共静态类Eq实现{
公共布尔等价(对象o1,对象o2){
压缩c1=(压缩)o1;
压缩c2=(压缩)o1;
返回c1。是否为名称(c2);
}
公共整数散列(对象o){
//TODO自动生成的方法存根
返回0;
}
}
我将非常感谢任何帮助

以下是一个示例:

 public boolean isTheSame(Collection<? extends Compress> a, Collection<? extends Compress> b) {
        Equator<Compress> compressEquator = new CompressEquator();
        return CollectionUtils.isEqualCollection(a, b, compressEquator); 
 }

    public static class CompressEquator implements Equator<Compress> {

    public boolean equate(Compress c1, Compress c2) {
       return c1.isTheSame(c2);
    }
    //
  }
}

public boolean isTheSame(collection)你说的
是什么意思?我应该把赤道的方法放在我的集合类中吗
?我的意思是,我应该让我的类实现赤道吗?你有什么选择吗?如果可能,请提供示例或链接,非常感谢
...

    Eq equator = new Eq<Compress>();
    return CollectionUtils.isEqualCollection(filtLst3, filtLst4, equator);
}

public static class Eq<Compress> implements Equator {

    public boolean equate(Object o1, Object o2) {
        Compress c1 = (Compress) o1;
        Compress c2 = (Compress) o1;

        return c1.isTheSame(c2);
    }

    public int hash(Object o) {
        // TODO Auto-generated method stub
        return 0;
    }

}
 public boolean isTheSame(Collection<? extends Compress> a, Collection<? extends Compress> b) {
        Equator<Compress> compressEquator = new CompressEquator();
        return CollectionUtils.isEqualCollection(a, b, compressEquator); 
 }

    public static class CompressEquator implements Equator<Compress> {

    public boolean equate(Compress c1, Compress c2) {
       return c1.isTheSame(c2);
    }
    //
  }
}