Map<String, Map<String, Set<String>>> unityTableWithNameMachine
(не заполненный)
Map<String, Set<String>> keyWordMap
(заполненный) Map<currentKey , Set<какие-то слова>>
String currentKey
(заполненный)
String nameMachine
(заполненный)
мне надо получить результат Map<nameMachine, Map<keyWordMap.getKey, keyWordMap.getValues>> примерно такой результат пытался нагуглить что-то похожее, безуспешно
-
4опишите пожалуйста какую задачу вы пытаетесь решить, а то вложенность ваших массивов немного смущаетAndrew– Andrew2022年08月19日 08:53:39 +00:00Commented 19 авг. 2022 в 8:53
-
Добавьте в вопрос что пытались сделать, и конкретные примеры данных - что исходно есть, что должно получиться.insolor– insolor2022年08月19日 08:59:04 +00:00Commented 19 авг. 2022 в 8:59
-
@Andrew пока не задал вопрос сюда не мог решить, эффект уточки сработал) Задача в том, что у меня есть станок (токраный к примеру) у него есть регламент по осмотру (общий осмотр станка) в который входят (осмотр дверей, осмотр окон и тд) и мне вся эта инфа нужна была в виде Map<Токарный станок, Map<Общий осмотр станка, Set<Окна, Двери>>>Евгений Калинин– Евгений Калинин2022年08月19日 08:59:12 +00:00Commented 19 авг. 2022 в 8:59
-
спасибо, что отвлеклись) стремно немного ;DЕвгений Калинин– Евгений Калинин2022年08月19日 09:00:52 +00:00Commented 19 авг. 2022 в 9:00
1 ответ 1
Собрал сначала первую Map1 keyWordMap.put(currentKey, new HashSet<>());
Во вторую Map2 передал ключ(namesMachine = String) и в качестве значение new HashMap unityTableWithNameMachine.put(namesMachine, new HashMap<>()); Затем вызываю Map2 достаю оттуда по ключу Map1 начинаю работать с ней, записывая свои данные unityTableWithNameMachine.get(namesMachine).put(currentKey,keyWordMap.get(currentKey))
ниже метод который получился(парсер ворд таблицы) p.s сори за говнокод)
@SneakyThrows
private void parseListOfWorksTable(XWPFTable table, Map<String, Set<String>> keyWordMap,
Map<String, Map<String, Set<String>>> unityTableWithNameMachine) {
String currentKey = null;
for (var row : table.getRows()) {
if (helperForParser.cellValueContains(row, 0, "станок")) {
continue;
}
if (row.getTableCells().size() == 1) {
if (!row.getCell(0).getText().contains("MIKRON ")) {
currentKey = row.getCell(0).getText();
currentKey = currentKey.replace("\n", "").trim();
putKeyWordMap(currentKey, keyWordMap);
putUnityTableWithNameMachine(namesMachine, unityTableWithNameMachine);
continue;
}
} else if (row.getTableCells().size() > 2) {
var keyWordPosition = helperForParser.getKeyWordPosition(row);
if (keyWordPosition >= 0) {
currentKey = row.getCell(keyWordPosition).getText();
if (currentKey == null || currentKey.isEmpty()) {
continue;
}
putKeyWordMap(currentKey, keyWordMap);
putUnityTableWithNameMachine(namesMachine, unityTableWithNameMachine);
continue;
}
}
if (currentKey == null || currentKey.isEmpty()) {
continue;
}
if (!row.getCell(0).getText().isEmpty()) {
keyWordMap.get(currentKey)
.add(row.getCell(0).getText().replace("\n", "").replace(";", "").trim());
unityTableWithNameMachine.get(namesMachine)
.put(currentKey, keyWordMap.get(currentKey));
}
}
}
-
1добавьте пожалуйста немного больше контекста в ответ, потому что в текущем виде он не обладает какой-либо пользой для сообщества и полезен очень узкому кругу людей :(Andrew– Andrew2022年08月19日 09:01:51 +00:00Commented 19 авг. 2022 в 9:01
-
@Andrew надеюсь лучше...Евгений Калинин– Евгений Калинин2022年08月19日 09:10:05 +00:00Commented 19 авг. 2022 в 9:10
Начните задавать вопросы и получать на них ответы
Найдите ответ на свой вопрос, задав его.
Задать вопросИзучите связанные вопросы
Посмотрите похожие вопросы с этими метками.