Java 迭代器应该返回HashSet,但充当对象

Java 迭代器应该返回HashSet,但充当对象,java,iterator,hashset,Java,Iterator,Hashset,印刷品 while (i.hasNext()){ System.out.println(i.next().getClass().getName()); } 发生了什么事?确保迭代器的类型也为HashSet java.util.HashSet java.util.HashSet java.util.HashSet Iterator i=this.sets.Iterator(); 确保迭代器也是哈希集的类型 java.util.HashSe

印刷品

        while (i.hasNext()){
            System.out.println(i.next().getClass().getName());
        }

发生了什么事?

确保迭代器的类型也为
HashSet

java.util.HashSet
java.util.HashSet
java.util.HashSet
Iterator i=this.sets.Iterator();

确保迭代器也是
哈希集的类型

java.util.HashSet
java.util.HashSet
java.util.HashSet
Iterator i=this.sets.Iterator();
相当容易,更换

Iterator<HashSet<Integer>> i = this.sets.iterator();

Iterator i=this.sets.Iterator();
相当容易,更换

Iterator<HashSet<Integer>> i = this.sets.iterator();

Iterator i=this.sets.Iterator();

您需要显式强制转换它或使其成为泛型

Iterator<HashSet<Integer>> i = this.sets.iterator();
private ArrayList set=new ArrayList();
迭代器i=this.sets.Iterator();
while(i.hasNext()){
if(i.next().containsAll(union)){
返回true;
}
}

您需要显式强制转换它或使其成为泛型

Iterator<HashSet<Integer>> i = this.sets.iterator();
private ArrayList set=new ArrayList();
迭代器i=this.sets.Iterator();
while(i.hasNext()){
if(i.next().containsAll(union)){
返回true;
}
}

我认为您还需要在

private ArrayList<HashSet<Integer>> sets = new ArrayList<HashSet<Integer>>();

            Iterator<HashSet<Integer>> i = this.sets.iterator();
            while (i.hasNext()){

                if(i.next().containsAll(union)){
                    return true;
                }
            }
Iterator i=set.Iterator();
然后,它应该能够自动将其强制转换为HashSet。否则,您将需要执行显式强制转换

 Iterator<HashSet<Integer>> i = sets.iterator();
if(((HashSet)i.next()).containsAll(union)){
//返回true;
}

我认为您还需要在

private ArrayList<HashSet<Integer>> sets = new ArrayList<HashSet<Integer>>();

            Iterator<HashSet<Integer>> i = this.sets.iterator();
            while (i.hasNext()){

                if(i.next().containsAll(union)){
                    return true;
                }
            }
Iterator i=set.Iterator();
然后,它应该能够自动将其强制转换为HashSet。否则,您将需要执行显式强制转换

 Iterator<HashSet<Integer>> i = sets.iterator();
if(((HashSet)i.next()).containsAll(union)){
//返回true;
}

好的,你比我快了5秒,删除了我的答案。@home:是的,你仍然可以找到你的答案。不需要删除。谢谢大家,它成功了,我是java新手,我真的不理解这种奇怪的嵌套类型转换,你能推荐一些东西阅读吗?你需要阅读泛型。是的,我正在尝试,但stacckoverflow不接受它,直到我等几分钟好的,你已经快了5秒,删除了我的答案。@home:是的,你仍然可以找到你的答案。不需要删除。谢谢大家,它成功了,我是java新手,我真的不了解这种奇怪的嵌套类型转换,你能推荐一些东西阅读吗?你需要阅读泛型。是的,我正在尝试,但stacckoverflow不接受它,直到我等待几分钟GetName()方法将返回类的名称。这里的类名是java.util.HashSetgetName()方法将返回类名。这里的类名是java.util.HashSet