2016-07-04 98 views
0

我有一个对象,可以是n维的对象[],我需要将它转换为具有相同表示形式的n-nested列表,即[] [] [ ]变成ArrayList >>。我知道在运行时通过变量的大小。另一个警告是,在添加到“最低”列表之前,必须处理“最低”阵列中的对象;对象不能被复制。这里是一个1维阵列n维数组到n嵌套列表

Object array; // argument 

List<Object> list = new ArrayList<Object>(); 
for(Object o : (Object[])array) { 
    list.add(process(o)); 
} 

的简单情况下本示例不考虑的尺寸和这样“只是工作”的简单情况,但在复杂的一个失败。我如何以通用的方式处理n个案例?

+0

啊,你确切的问题是什么? – GhostCat

+0

如何使用多维数组实际执行该案例,编辑了OP – Madden

+0

我想你的数组没有动态定义,那么为什么你不能使用独特的方法来执行此操作呢? –

回答

1
Object process(Object possibleArray) { 
    if (possibleArray instanceof Object[]) { // is array 
     Object[] array = (Object[]) possibleArray; 
     List<Object> list = new ArrayList<Object>(array.length); 
     for(Object o : array) { 
      list.add(process(o)); 
     } 
     return list; 
    } else { 
     return possibleArray; 
    } 
} 
+0

完美,谢谢 – Madden