我正在尝试编写一个程序,遍历一组集合。在下面的示例代码中,我收到了一个错误,指出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 集合时进行更改!如何编辑 extension 而不影响更大的集合(allAnimals)。
for (Set<String> extension : allAnimals)
{
System.out.println("Set size: " + extension.size());
extension.add("~");
System.out.println(extension);
}
System.out.println(allAnimals);
someSet.clear();
。 - Sergey Kalinichenko