Идея состоит в том, чтобы создать таблицу для динамического сохранения и получения информации, поэтому я сделал это до сих пор
- Сначала я подумал о
Map<String, List<Object>>
, где каждая запись представляет собой пару (column name, column values)
, и вставка значения будет
Map<String, List<Object>> table = new HashMap<>();
table.computeIfAbsent("Column Name", col -> new ArrayList()).add("value");
Преимущество : table.get("Column Name").get(row)
легко доступен для каждого столбца, и я могу быть уверен в названии и количестве столбцов
Недостаток : итерация строки антиинтуитивна (требуется доступ через имя столбца, а затем номер строки), и я не могу гарантировать, что количество значений, введенных в каждый столбец, одинаково.
- Теперь, если я обменяюсь ролями «Карта» и «Список», чтобы использовать что-то вроде
List<Map<String, Object>>
, Карты будут действовать как строки таблицы, и вставка значения будет
List<Map<String, Object>> table = new ArrayList();
Map<String, Object> row = new HashMap<>();
row.put("Column Name", "value");
table.add(row);
Преимущество : итерация строки более интуитивна, каждый столбец легко доступен с помощью table.get(row).get("Column Name")
, и я могу быть уверен в количестве строк
Недостаток : Я не могу гарантировать, что у каждой вставленной строки будут одинаковые столбцы.
Какой из них мне следует использовать? Как я могу улучшить их? Есть ли лучший подход?