gpt4 book ai didi

java - 在 Java 中迭代任何类型的泛型数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:45:10 26 4
gpt4 key购买 nike

如果有一个 Java Collection 实例可能带有原始类型、泛型数组和/或可迭代集合,我想将泛型数组视为可迭代集合,但如何处理?例如以下伪java代码

List<?> list1; 
list1.add(new int[2]);
list1.add(new String[3]);
list1.add(new ArrayList());
for (Object e : list1){
if (e instanceof Iterable){
//The int[2] and String[3] will not fall in this case that I want it be
//Iterate within e
}
}

请指教如何使 int[2] 和 String[3] 落入 case。

谢谢和问候,威廉

最佳答案

使用反射包中的 Array 类:

    final List<Object> list = new ArrayList<Object>();
list.add(new int[] { 1, 2 });
list.add(new String[] { "a", "b", "c" });
final List<String> arrayList = new ArrayList<String>();
arrayList.add("el1");
list.add(arrayList);

for (Object element : list) {
if (element instanceof Iterable) {
for (Object objectInIterable : (Iterable) element) {
System.out.println(objectInIterable);
}
}
if (element.getClass().isArray()) {
for (int i = 0; i < Array.getLength(element); i++) {
System.out.println(Array.get(element, i));
}
}
}

关于java - 在 Java 中迭代任何类型的泛型数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4342481/

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