объявление многомерного массива Java 1 * 3 измерение? - PullRequest
2 голосов
/ 26 мая 2011

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

В последнее время я занимаюсь программным обеспечением для анализа текста.и я пытаюсь покончить с 1 * 3-мерным массивом.что-то вроде

[0]
   [][][]
[1]
   [][][]
[2] 
   [][][]
[3]
   [][][]

, три столбца во втором измерении каждого используются для сохранения деталей первого измерения.но размер массива второго измерения пока неизвестен, что означает, что я не знаю, сколько я найду из текста, который я собираюсь найти. Он увеличится, как только будет найдена цель.это глупый способ сделать это.я знаю, что Java может объявить массив как int [] [] abc = new [5] [].но он просто может объявить только для одного неизвестного измерения.затем я пытаюсь сделать что-то вроде этого

String [] abc = new string [4]

, затем я сначала делаю предположение, что размер в первом столбце во втором измерении.

abc[0] = String [10][][] inside1;
abc[1] = String [10][][] inside2;
abc[2] = String [10][][] inside3;
abc[3] = String [10][][] inside4;

, но все равно получаю ошибкукогда я его скомпилирую.

как мне сделать декларацию или лучше сделать это легко.если я пропущу какой-либо пост в интернете об этом.Пожалуйста, покажите мне любое ключевое слово или ссылку, чтобы я посмотрел.

Ответы [ 7 ]

2 голосов
/ 26 мая 2011

Что вы пытаетесь реализовать?Похоже, вы вместо этого должны использовать один из классов коллекции вместе с объектами значений, которые представляют ваши данные.

1 голос
/ 26 мая 2011

Мне кажется, я понимаю, что вы пытаетесь сделать, и это так:

                String[][] value = new String[4][3];

Java имеет многомерные массивы, их массивы в массивах.

0 голосов
/ 26 мая 2011

Я бы создал List<List<String>> или Map<String, List<String>>, предполагая, что значения, которые вы хотите сохранить и просмотреть, являются строками.

0 голосов
/ 26 мая 2011

Если вы пытаетесь проанализировать текстовый файл и знаете, что означает каждый столбец, вы должны создать новый объект, который содержит эти данные. Массивы массивов - это излишне болезненный хак, и ваш код гораздо более удобен в обслуживании, если вы просто делаете то, для чего предназначена Java - напишите класс.

0 голосов
/ 26 мая 2011

Вы можете использовать ArrayList для хранения массива значений int неизвестной длины.Вы можете использовать ArrayList> для хранения неопределенного числа массивов int.

0 голосов
/ 26 мая 2011

Почему бы вам не создать объект, который имеет свойство 'name' (или 'index', если хотите) и свойство 'list' типа List?

0 голосов
/ 26 мая 2011

Пример для матрицы 10x13:

String [] [] abd = new String [10] [13];

РЕДАКТИРОВАТЬ: я выбрал 10x13, потому что 1x3 не имеет особого смысла, будучи первым значением 1.

...