#java #arrays #multidimensional-array
#java #массивы #многомерный массив
Вопрос:
Я хочу инициализировать 2d-массив в java, который может содержать различные типы данных, такие как char, int и т.д. Мой 2d-массив будет выглядеть примерно так —
1 2 3 4 5 6 7
1 S S S S S S S
2 S S S S S S S
3 S S S S S S S
4 S S S S B S S
5 S S S S S S S
6 S S S S S B S
7 S S S S S S S
Перед 1 есть пробел, и я хочу включить его в свой массив.Если я могу это инициализировать, как я могу это сделать? Использую ли я соглашение ASCII при вводе строковых значений или что-то в этом роде? Пожалуйста, помогите.
Примечание — я не хочу печатать матрицу, я буду вводить эти значения вручную.
Комментарии:
1. Массив может содержать только один тип данных. Вы могли бы обойти проблему, используя массив объектов с классами-оболочками или массив int, где вы точно знаете, какие индексы могут быть понижены до значения char.
2. Очень вероятно, что здесь вам нужно использовать
char
2D-массив. Конечно, возможно использование 2D-массива необработанных объектов, но в этом случае вы не можете быть уверены, какой тип хранится в каждой ячейке массива.3. Пожалуйста, имейте в виду, что переход на нетипизированную структуру данных — очень плохая идея. Что такое mode, в вашем случае числа — это просто «координаты», которые можно легко вычислить по индексу массива…
Ответ №1:
Я вижу два решения, если вы хотите использовать один примитивный тип в массиве, либо обрабатывайте числа как символы, чтобы у вас был массив символов
char[][] array2d = new char[8][8]
или просто проигнорируйте числа и включите только символы и вычтите правильное число из индекса (x, y) в массиве
char[][] array2d = new char[7][7]
таким образом, для array2d[3][5] числа будут равны 4 и 6