Как бы вы создали эквивалент этого вложенного массива javascript в Java?

[[1,2, [3]], 4] мы можем объявить такой массив в Javascript, как бы этот массив был написан на Java? следующее - это что-то вроде того, что я хочу, но не работает, поскольку 4 не является 2-мерным массивом. Есть ли способ сделать это без списков?

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

Спасибо

Нет, на Java это не сработает

Jonas Wilms 25.07.2018 21:10

зачем вам это нужно?

John Kane 25.07.2018 21:11

К сожалению, Java так не работает

Isaac Abramowitz 25.07.2018 21:12

Ваш вопрос - X / Y Проблема. Сообщите нам, какую проблему вы пытаетесь решить, вместо того, чтобы просить помощи в решении, что, по-видимому, не является правильным подходом.

user177800 25.07.2018 21:12

Вы не можете поместить 4 в массив int[].

SLaks 25.07.2018 21:13

Хорошо, я скоро буду проводить онлайн-тест для работы, они говорят, что будут некоторые базовые тесты, такие как сглаживание массива произвольно вложенных массивов целых чисел в плоский массив целых чисел. например [[1,2, [3]], 4] -> [1,2,3,4]. Я слышал в тесте, что они позволяют вам использовать язык по вашему выбору. Мне нравится Java, поэтому я сказал, что попробую воссоздать проблему на Java для практики, пока я не потеряюсь, пытаясь это сделать.

AnonymousAlias 25.07.2018 21:14

Это довольно сложно, согласно ответу @JonasW. Я бы посоветовал не делать Java вашим предпочтительным языком, если вы не хотите усложнять себе жизнь.

Isaac Abramowitz 25.07.2018 21:17

Я полагаю, что если я выберу Java, у них могут быть разные тесты, не совсем уверен. Я все равно выучил это на javascript, что намного удобнее. более любопытно

AnonymousAlias 25.07.2018 21:19

@isaac согласился. Я лично не смог бы написать что-то работающее на Java, потому что я запутал бы вещь public static void main(String[] args)

Jonas Wilms 25.07.2018 21:19
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
9
59
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вам нужно, чтобы последний термин был в int[][], и вы можете сделать это с помощью чего-то вроде

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

Выходы

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

также хотел бы знать, почему это было отклонено, кажется хорошим ответом?

AnonymousAlias 25.07.2018 21:21
Ответ принят как подходящий

Вы можете написать класс-оболочку, который содержит либо сам 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)
);

Но работать с этими узлами сейчас действительно сложно.

Другие вопросы по теме