【问题标题】:n-dimensional array to n-nested listn 维数组到 n 嵌套列表
【发布时间】:2016-11-06 01:45:18
【问题描述】:

我有一个可以是 n 维的 Object[] 的对象,我需要将其转换为具有相同表示的 n 嵌套列表,即 [][][] 变为 ArrayList>>。我通过变量知道运行时 n 的大小。另一个需要注意的是,“最低”数组中的对象必须在添加到“最低”列表之前进行处理;不能只是复制对象。这是一维数组的简单情况

Object array; // argument

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

此示例未考虑尺寸,因此对于简单情况“正常工作”,但在复杂情况下失败。如何以通用方式处理 n-case?

【问题讨论】:

  • 啊,你的具体问题是什么?
  • 如何用多维数组实际做case,编辑OP
  • 我猜你的数组不是动态定义的,那为什么不能用一个独特的方法来执行呢?
  • 提示:使用递归来实现这一点。
  • 我知道需要什么一般方法,但是我有淋巴结感染并且无法正常思考,理想情况下我只是在寻找一个很好的工作示例

标签: java recursion arraylist multidimensional-array


【解决方案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;
    }
}

【讨论】:

    猜你喜欢
    • 2016-05-15
    • 1970-01-01
    • 2016-07-02
    • 2011-05-10
    • 2016-05-28
    • 2011-06-13
    • 1970-01-01
    • 2018-09-05
    • 2012-12-29
    相关资源
    最近更新 更多