繁体   English   中英

n维数组到n嵌套列表

[英]n-dimensional array to n-nested list

我有一个可以是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;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM