繁体   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