您将如何在Java中创建此嵌套javascript数组的等效项

时间:2018-07-25 19:09:35

标签: javascript java arrays

[[1,2,[3]],4]我们可以在Javascript中声明一个这样的数组,该数组如何用Java编写?以下是我想要的东西,但由于4不是2d数组而无法正常工作。有没有列表的方法吗?

int[][] arrayNestedTest = {{1,2},{3}};
int[][][] arrayNestedTest1 = {arrayNestedTest, 4};

谢谢

2 个答案:

答案 0 :(得分:1)

您可以编写一个包装类,其中包含Int本身或其他节点的数组:

class Node {
  Integer value;
  Node[] children;
  Node(Node[] ...children) { this.children = children; }
  Node(Integer value) { this.value = value; }
}

因此您可以将其构建为:

Node nested = new Node(
  new Node( new Node(1), new Node(2), new Node( new Node(3) ) ),
  new Node(4)
);

但是现在使用这些节点真的很复杂。

答案 1 :(得分:0)

您需要将最后一项放在int[][]中,并且可以使用类似的方法

int[][] arrayNestedTest = { { 1, 2 }, { 3 } };
int[][][] arrayNestedTest1 = { arrayNestedTest, { { 4 } } };
System.out.println(Arrays.deepToString(arrayNestedTest1));

输出

[[[1, 2], [3]], [[4]]]