Как перебрать объект массива, содержащий несколько массивов?

У меня есть этот тип массива:

[[{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 дней.

Ваше определение массива недопустимо для Java. Если у вас есть вложенные массивы, вы можете добавить внутренний цикл внутри вашего внешнего цикла

knittl 11.08.2023 13:36

Ваш «массив» выглядит как JSON. Это?

Abra 11.08.2023 13:48

Пожалуйста, уточните вашу конкретную проблему или предоставьте дополнительную информацию, чтобы выделить именно то, что вам нужно. Как сейчас написано, трудно точно сказать, о чем вы спрашиваете.

Community 11.08.2023 14:29
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
3
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Во-первых, давайте определим предоставленный вами массив:

    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}]] пожалуйста, помогите мне повторить это значение

Akhilesh Dhiman 11.08.2023 12:22

Уже отредактировал посмотрим все ли правильно

Krzysztof Grabowski 11.08.2023 12:36

Другие вопросы по теме