gpt4 book ai didi

java - 如何在java中打印集合的集合?

转载 作者:行者123 更新时间:2023-12-02 03:45:02 25 4
gpt4 key购买 nike

HashSet<Set<Set<int[]>>> Sa=new HashSet<Set<Set<int[]>>>();

现在,我需要打印 Sa。使用单个迭代器我无法打印

Iterator<Set<Set<int[]>>> iter = Sa.iterator();
while (iter.hasNext()) {
System.out.println(iter.next());
}

这不起作用

最佳答案

首先,您不应该使用像 int 这样的原始数据类型与通用类。所以代替int[]使用List<Integer> .

现在,如果您真的只想使用一个 Iterator那么你可以使用一堆for-each像这样循环 -

for (Set<Set<List<Integer>>> aSa : Sa) {
for (Set<List<Integer>> bSa : aSa) {

Iterator<List<Integer>> iter = bSa.iterator();

while(iter.hasNext()) {
System.out.println(iter.next());
}
}
}

完整测试代码 -

    HashSet<Set<Set<List<Integer>>>> Sa = new HashSet<>();

// Creating dummy data

// Two List of Integers
List<Integer> listInt1 = new ArrayList<>();
List<Integer> listInt2 = new ArrayList<>();

// Populating the list
for (int i = 0; i < 4; i++) {
listInt1.add(i);
listInt2.add(i+30);
}

// Data structure of Sa.
Set<List<Integer>> setOfIntLists1 = new HashSet<>();
Set<List<Integer>> setOfIntLists2 = new HashSet<>();

setOfIntLists1.add(listInt1);
setOfIntLists1.add(listInt2);

setOfIntLists2.add(listInt2);
setOfIntLists2.add(listInt1);

Set<Set<List<Integer>>> setOfset1 = new HashSet<>();
Set<Set<List<Integer>>> setOfset2 = new HashSet<>();

setOfset1.add(setOfIntLists1);
setOfset1.add(setOfIntLists2);

setOfset2.add(setOfIntLists2);
setOfset2.add(setOfIntLists1);

// Adding data to Sa
Sa.add(setOfset1);
Sa.add(setOfset2);

for (Set<Set<List<Integer>>> aSa : Sa) {
for (Set<List<Integer>> bSa : aSa) {

Iterator<List<Integer>> iter = bSa.iterator();

while(iter.hasNext()) {
System.out.println(iter.next());
}
}
}
}

输出

[0, 1, 2, 3]

[30, 31, 32, 33]

关于java - 如何在java中打印集合的集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36376800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com