[英]Nested TreeSet iterators - Java
我正在尝试编写一个打印两组笛卡尔积的Java程序。 我用迭代器定义了两个TreeSet。
问题是 ,当我身边的迭代两套while语句,只有第二个同时完成所有的元素使用(嵌套迭代)。 似乎迭代器彼此混淆。
while (iSet1.hasNext()) { // to iterate over the first set
int i = iSet1.next();
while (iSet2.hasNext()) { // to iterate over the second set
int j = iSet2.next();
System.out.printf("(%d,%d)",i,j);
} // end of inner while
} // end of outer while
如果set1 = {1,2}并且set2 = {1,2}我得到这个输出 :(1,1)(1,2)其中所需的输出是:(1,1)(1,2)( 2,1)(2,2)
提前谢谢^ _ ^
如果您希望计算笛卡尔积,则需要为第一个迭代器的每个值重新初始化第二个迭代器。
while (iSet1.hasNext()) { // to iterate over the first set
int i = iSet1.next();
iSet2 = secondSet.iterator(); // <- re-initialize the iterator here
while (iSet2.hasNext()) { // to iterate over the second set
int j = iSet2.next();
System.out.printf("(%d,%d)",i,j);
} // end of inner while
} // end of outer while
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.