我正在尝试编写一个迭代一组集的程序.在下面的示例代码中,我收到一条错误,指出iter.next()是object类型而不是一组字符串.我也有一些其他更神秘的问题,也可以迭代几组.有什么建议?
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());
}
Run Code Online (Sandbox Code Playgroud)
具有相同设置的相关问题(减去循环).
下面的代码片段产生包括波浪号的最终输出.但我不想在我去的时候改变所有的动物!如何编辑扩展名而不影响较大的集合(allAnimals).
for (Set<String> extension : allAnimals)
{
System.out.println("Set size: " + extension.size());
extension.add("~");
System.out.println(extension);
}
System.out.println(allAnimals);
Run Code Online (Sandbox Code Playgroud) 下面代码的输出是[[3],[3],[3],[3]].
在我看来它应该是[[0],[1],[2],[3]]集合似乎保留了它的大小,但不是它的元素通过循环.
Set<Set<String>> mySetOfSets = new HashSet<Set<String>>();
mySetOfSets.clear();
Set<String> numbers = new HashSet<String>();
for(int i=0; i<4 ; i++)
{
numbers.clear();
String iAsString = String.valueOf(i);
numbers.add(iAsString);
mySetOfSets.add(numbers);
}
System.out.println( mySetOfSets);
Run Code Online (Sandbox Code Playgroud)