我想把嵌套的数组变平,比如:
[[[1],2],[3]],4] -> [1,2,3,4]
手动在java中我找不到线索!:S
我尝试过手动的java脚本指南,但没有找到解决方案
public static void main(String[] args) {
Object arr[] = { 1, 2, new Object[] { 4, new int[] { 5, 6 }, 7 }, 10 };
String deepToString = Arrays.deepToString(arr);
String replace = deepToString.replace("[", "").replace("]", "");
String array[] = replace.split(",");
int temp[] = new int[array.length];
for (int i = 0; i < array.length; i++) {
temp[i] = Integer.parseInt(array[i].trim());
}
System.out.println(Arrays.toString(temp));
}
9条答案
按热度按时间yyyllmsg1#
Stream API提供了一个紧凑而灵活的解决方案。
或JDK 16之前的版本
您可以执行操作为
或者当你假设叶子对象是一个特定的类型时:
jhdbpxl92#
我使用Java创建了a class to solve this,代码如下所示。
溶液:
单元测试:
vmdwslir3#
如果它是一个只有两层的基元数组,你可以这样做:
以获取相应的装箱数组(如有必要,可以取消装箱)
oknrviil4#
这就是我解决问题的方法。不知道你想要哪种效率。但是是的。这在JavaScript中做得很好。
第一个月
一种可能更有效方法是使用arr和递归中的reduce和concat方法。
alen0pnh5#
下面是我在Java中解决这个问题的方法:
hmtdttj46#
它可以通过迭代的方法来展平。
您可以找到完整的源代码here您可以使用递归来解决这个问题。
下面是recursion的链接。
vecaoik17#
递归调用方法适用于这种情况:
ffscu2ro8#
软件包com.app;
导入java.util数组;
公共类Test 2 {
}
yhxst69z9#
你可以试试这个代码: