簡體   English   中英

嵌套的TreeSet迭代器 - Java

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM