Учитывая, что
- Все данные хранятся на карте в виде строк и
- Вы хотите, чтобы в вашей таблице данных была одна строка, в которой заголовки были бы ключами, а элементы строки были бы значениями из входной хэш-карты. Если бы преобразование было другим, то у вас был бы список карт, поскольку таблица данных имела бы несколько строк (значений для разных карт) напротив столбцов (ключей).
Вы можете попробовать:
List<List<String>> data = Arrays.asList(new ArrayList<String>(map.keySet()), new ArrayList<String>(map.values()));
DataTable dataTable = DataTable.create(data);
P.S. Я не проверял синтаксис.