#java
#java
Вопрос:
У меня есть требование, в котором мне нужно прочитать значения и их координаты и поместить их в матрицу для последующего отображения.
итак, допустим, у меня есть следующее:
<name='abc', coordinates='1,3'>
<name='xyz', coordinates='2,1'>
………………………….
Теперь мне нужно поместить их в «матричную коллекцию» на основе их значений координат и отобразить в виде таблицы (с ячейками в таблице, занимающими соответствующий слот координат).
Есть ли коллекция / способ сделать это в Java? Имейте в виду, мне не нужны swing или какие-либо методы графической библиотеки. Для этого мне просто нужна структура данных.
Спасибо
, BC
Комментарии:
1. По умолчанию ничего, почему бы не использовать массив массивов?
Ответ №1:
Вы могли бы использовать класс Table из Guava.
Комментарии:
1. Как вы использовали этот класс для достижения своего результата? Я не понимаю, как это разделит ваши координаты на два целых числа. Гуава регулярно рекомендуется в последних ответах, и это меня интересует.
2. Объявите свою таблицу как Table<Целое число, целое число, значение>, и вы можете обрабатывать индексы как координаты.
Ответ №2:
Если вы заранее знаете границы своей сетки, вы можете использовать 2-мерный массив:
int[][] matrix = new int [n][n];
Если вы этого не сделаете, один из способов эмулировать это с помощью списка списков:
ArrayList <ArrayList<Integer> > matrix = new ArrayList <ArrayList <Integer> >();
Ответ №3:
Ничто не сделает это автоматически для вас AFAIK. Вам нужно начать с извлечения данных. В зависимости от того, как это предлагается вам, вы можете использовать регулярные выражения или какой-либо специализированный анализатор (если это XML, в Java есть широкий выбор инструментов).
Далее вам нужно будет разделить эту строку координат. Проверьте метод split
класса String
.
Наконец, эти координаты должны стать целыми числами. Проверьте метод parseInt
класса Integer
.
Теперь с этими числовыми координатами вы можете вставить значение в массив. Если вы заранее знаете максимальные координаты, вы можете сразу создать массив. Если координатами может быть любое значение без ограничений, вам понадобится некоторая динамическая структура или регулярно создавайте больший массив и копируйте старое содержимое.