gpt4 book ai didi

Java:将数组的数组转换为集合的集合,反之亦然

转载 作者:行者123 更新时间:2023-12-01 16:11:59 25 4
gpt4 key购买 nike

请建议一些优雅的转换方式
在 Java 中,数组的数组集合的集合,反之亦然。

我想 Java API 中没有方便的方法,对吧?

public static <T> T[][] nestedCollectionsToNestedArrays(
Collection<? extends Collection<T>> source){

// ... ?
}

public static <T> Collection<Collection<T>> nestedArraysToNestedCollections(
T[][] source){

// ... ?
}

附加问题:
原始类型的嵌套数组有什么用?

我是否必须为每个基本类型声明方法,因为禁止通用数组创建

最佳答案

对于集合的集合 -> 数组的数组:(它只返回一个 Object[][],因为“T”的类型信息不存在。如果您想要array 是正确的类型,并且会更复杂)

public static Object[][] nestedListsToNestedArrays(
Collection<? extends Collection<?>> source){
Object[][] result = new Object[source.size()][];
int i = 0;
for (Collection<?> subCollection : source) {
result[i++] = subCollection.toArray();
}
return result;
}

Additional question: What's with nested arrays of primitive types? Do I have to declare methods for each primitive type,

是的,您可以为每个基本类型声明方法,或者使用反射并牺牲类型安全性。原因是每个基本数组类型都是不相关的,并且除了 Object 之外,所有基本数组类型都没有父类(super class)型。

because of forbidden generic array creation?

不,但这就是另一个问题的原因:为什么返回 T[][] 的数组的集合 -> 数组的数组在上面很难。

关于Java:将数组的数组转换为集合的集合,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/813678/

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