gpt4 book ai didi

java - 遍历集合集合

转载 作者:搜寻专家 更新时间:2023-10-31 08:20:10 24 4
gpt4 key购买 nike

我正在尝试编写一个迭代一组集合的程序。在下面的示例代码中,我收到一个错误,指出 iter.next() 是对象类型而不是一组字符串。我还遇到了一些其他更神秘的问题,也涉及迭代集合的集合。有什么建议吗?

            Set<String> dogs= new HashSet<String>();
dogs.add("Irish Setter");
dogs.add("Poodle");
dogs.add("Pug");
dogs.add("Beagle");

Set<String> cats = new HashSet<String>();
cats.add("Himalayan");
cats.add("Persian");

Set<Set<String>> allAnimals = new HashSet<Set<String>>();
allAnimals.add(cats);
allAnimals.add(dogs);

Iterator iter = allAnimals.iterator();
System.out.println(allAnimals.size());

while (iter.hasNext())
{
System.out.println(iter.next().size());
}

具有相同设置(减去循环)的相关问题。
下面的代码片段导致包含波浪号的最终输出。但是我不想边走边改变所有的动物!如何在不影响更大的集合 (allAnimals) 的情况下编辑扩展名。

 for (Set<String> extension : allAnimals) 
{
System.out.println("Set size: " + extension.size());
extension.add("~");
System.out.println(extension);
}

System.out.println(allAnimals);

最佳答案

你的 allAnimals变量的类型是 Set<Set<String>> , 然而,当你问它的 Iterator你“忘记”了类型信息。根据编译器,您的迭代器只包含 Object秒。更改获得 Iterator 的行对此

Iterator<Set<String>> iter = allAnimals.iterator();

一切都应该没问题。

关于java - 遍历集合集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17883812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com