Рубрики
Без рубрики

Java-arraylist-object-перебор-нескольких-значений-и-ключей

Я новичок в Java и я создаю следующий json, используя один arraylist с циклом for и if statem… Помеченный java, for loop, ifstatement, arraylist.

Я новичок в Java и я создаю следующий json, используя один arraylist с циклом for и оператором if. Но я застрял со своей логической частью цикла for.

Вот моя java-программа.

main.java

public static void main(String args[]) вызывает исключение JsonProcessingException {

    List> dataProviderList = new LinkedList<>();

    List yearList = new LinkedList<>();

    yearList.add(2009);
    yearList.add(2010);
    yearList.add(2011);
    yearList.add(2012);
    yearList.add(2013);
    yearList.add(2014);

    yearList.add(21.4);
    yearList.add(31.3);
    yearList.add(15.6);
    yearList.add(34.8);
    yearList.add(20.1);
    yearList.add(27.3);

    yearList.add(20.3);
    yearList.add(43.1);
    yearList.add(19.8);
    yearList.add(34.7);
    yearList.add(24.4);
    yearList.add(21.9);

    for (int i = 0; i < (yearList.size() - (i + 6)); i++) {

        Map dataProviderValueMap = new LinkedHashMap<>();

        dataProviderValueMap.put("year", yearList.get(i));
        for (int j = 0; j < (yearList.size() + (i - 6)); j++) {
            dataProviderValueMap.put("income", yearList.get(j));
            for (int k = 0; k < (yearList.size() + (i - 6)); k++) {
                dataProviderValueMap.put("expenses", yearList.get(k));

                // for year 2014
                if (k == (yearList.size() - 2)) {

                    dataProviderValueMap.put("dashLengthLine", 0);
                    dataProviderValueMap.put("dashLengthColumn", 5);
                    dataProviderValueMap.put("alpha", 0.5);
                    dataProviderValueMap.put("additional", "(projection)");
                }

                // for year 2013
                if (k == (yearList.size() - 3)) {

                    dataProviderValueMap.put("dashLengthLine", 5);
                }
            }
        }
        dataProviderList.add(dataProviderValueMap);
    }


    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.enable(SerializationFeature.INDENT_OUTPUT);

    String mapToJson = objectMapper.writeValueAsString(dataProviderList);
    System.out.println(mapToJson);

}

Я хочу получить следующий результат:

требуемый результат:

“Поставщик данных”: [ { “год”: 2009, “доходы”: 21,4, “расходы”: 20,3 }, { “год”: 2010, “доходы”: 31,3, “расходы”: 43,1 }, { “год”: 2011, “доходы”: 15,6, “расходы”: 9,8 }, { “год”: 2012, “доходы”: 34,8, “расходы”: 34,7 }, { “год”: 2013, “доходы”: 20,1, “расходы”: 24,4, “Пунктирная линия”: 5 }, { “год”: 2014, “доходы”: 27.3, “расходы”: 21.9, “dashLengthLine”: 0, “dashLengthColumn”: 5, “альфа”: 0.5, “дополнительно”: “(проекция)” } ] Как я могу сделать этот цикл более конкретным и расширенным для цикла? я хочу использовать только один arraylist и цикл for с оператором if, имеющим Map внутри цикла for. спасибо за помощь!

java for-цикл if-оператор arraylist динамический

Оригинал: “https://dev.to/devanshi2806/java-arraylist-object-looping-through-multiple-values-and-keys-4c2h”