首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >嵌套TreeSet迭代器

嵌套TreeSet迭代器
EN

Stack Overflow用户
提问于 2013-04-06 21:30:33
回答 1查看 468关注 0票数 0

我正在编写一个Java程序,打印两个集合的笛卡儿积。我用迭代器定义了两个TreeSets。

当我在两个集合(嵌套迭代)中使用while语句进行迭代时,问题是,只有第二个正在完成所有元素。迭代器似乎彼此混淆了。

代码语言:javascript
运行
复制
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)

提前感谢^_^

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-06 21:35:54

如果您希望计算笛卡儿积,则需要重新初始化第一个迭代器的每个值的第二个迭代器。

代码语言:javascript
运行
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15856240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档