Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.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中如何在集合中合并集合?_Java_Merge - Fatal编程技术网

在java中如何在集合中合并集合?

在java中如何在集合中合并集合?,java,merge,Java,Merge,我想把两个集合元素合并成一个 public static <T> Set<Set<Long>> merge(Set<Set<Long>> splitSets, long a, long b) { Iterator<Set<Long>> it1 = splitSets.iterator(); for (long i=0; i<splitSets.size(); i++) {

我想把两个集合元素合并成一个

public static <T> Set<Set<Long>> merge(Set<Set<Long>> splitSets, long a, long b) {

    Iterator<Set<Long>> it1 = splitSets.iterator();


    for (long i=0; i<splitSets.size(); i++) {

       HashSet<Long> s1=null,s2 = null,s3 = null;

        for (long j=0; it1.hasNext(); j++) {

            s1=(LinkedHashSet<Long>) it1.next();
            if(s1.contains(a)){
                s2=s1;
            }
            if(s1.contains(b)){
                s3=s1;
            }
        }

        if(s2!=null && s3!=null){
            s2.addAll(s3);
            splitSets.remove(s3);
        }
    }

    return splitSets;
}
公共静态集合合并(集合拆分集合、长a、长b){
迭代器it1=splitSets.Iterator();

对于(长i=0;i
(LinkedHashSet)it1.next()
你怎么知道每个内部的
集合
都是
LinkedHashSet
类型?你唯一能确定的是,那是一个
集合,但不是哪种
集合
。试着找到一些关于不相交集合的东西:,我想这就是你想要为LinkedHashSet实现的东西所有元素都是LinkedHashSet的仅键入。在我的主代码段中,它仅是LinkedHashSet。@devendrak353您的
merge
不知道这一点,也不应该假设这一点。如果该方法试图强制转换到
Set
接口的特定实现,则接受接口类型
Set
没有意义。事实上,这是危险的。