[英]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.