У меня есть этот тип массива:
[[{agentId=640214009700, agentMaster=F}],[{agentId=640018009503, partnerId=BLS, agentMaster=F, aepsStatus=F}],[{agentId=640018009503, partnerId=BLS, agentMaster=F}]]
Шаг 1: использование для каждого цикла для итерации массива
для (Объект объекта: обр) {
System.out.println("obj- " + obj); // это повторит цикл и сможет получить весь массив один раз, но я не могу получить или перебрать этот массив - [{a=1,b=1}]
}
// [{agentId=640214009700, agentMaster=F}],[{agentId=640018009503, partnerId=BLS, agentMaster=F, aepsStatus=F}] // [{agentId=640018009503, partnerId=BLS, agentMaster=F}]
Шаг 2: я могу получить массив один за другим, но после этого я не могу получить значение или перебрать массив внутри него.
Пожалуйста, помогите мне. Я пытался в течение последних 2 дней.
Ваш «массив» выглядит как JSON. Это?
Пожалуйста, уточните вашу конкретную проблему или предоставьте дополнительную информацию, чтобы выделить именно то, что вам нужно. Как сейчас написано, трудно точно сказать, о чем вы спрашиваете.
Во-первых, давайте определим предоставленный вами массив:
Map<String, Integer> firstMap = new HashMap<>();
firstMap.put("a", 1);
firstMap.put("b", 1);
Map<String, Integer> secondMap = new HashMap<>();
secondMap.put("c", 1);
secondMap.put("d", 2);
Object[][] arr = new Object[][]{
{firstMap},
{secondMap}
};
Теперь давайте используем потоки Java для перебора вложенных массивов:
Arrays.stream(arr)
.flatMap(Arrays::stream)
.filter(Map.class::isInstance)
.forEach(obj -> {
Map<String, Integer> map = (Map<String, Integer>) obj;
map.forEach((key, value) -> System.out.println("Key: " + key + ", Value: " + value));
});
Отредактировано по вашим данным
Map<?, ?>[][] arr = new Map[][]{
{new HashMap<String, Object>() {{
put("agentId", 640214009700L);
put("agentMaster", "F");
}}},
{new HashMap<String, Object>() {{
put("agentId", 640018009503L);
put("partnerId", "BLS");
put("agentMaster", "F");
put("aepsStatus", "F");
}}},
{new HashMap<String, Object>() {{
put("agentId", 640018009503L);
put("partnerId", "BLS");
put("agentMaster", "F");
}}}
};
Arrays.stream(arr)
.flatMap(Arrays::stream)
.filter(Objects::nonNull)
.forEach(obj -> {
obj.forEach((key, value) -> System.out.println("Key: " + key + ", Value: " + value));
});
}
Похоже, у меня уже есть значение этого типа [[{agentId=640214009700, agentMaster=F}],[{agentId=640018009503, partnerId=BLS, agentMaster=F, aepsStatus=F}],[{agentId=640018009503, partnerId =BLS, agentMaster=F}]] пожалуйста, помогите мне повторить это значение
Уже отредактировал посмотрим все ли правильно
Ваше определение массива недопустимо для Java. Если у вас есть вложенные массивы, вы можете добавить внутренний цикл внутри вашего внешнего цикла