n维数组到n嵌套列表



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

的简单例子
Object array; // argument
List<Object> list = new ArrayList<Object>();
for(Object o : (Object[])array) {
     list.add(process(o));
}

这个例子没有考虑维度,因此在简单情况下"只适用",但在复杂情况下就行不通了。我如何以一般的方式处理n的情况?

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;
    }
}

相关内容

  • 没有找到相关文章

最新更新