Java: создать список списка карт - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть Список карт, и карта содержит json объектов ... Я создал отдельные списки для каждого json объектов, которые имеют одинаковое имя службы, как показано в примере ниже, если размер списка должен быть равен serviceNameList, и Я хочу создать отдельный список для него

означает, что идеальный сценарий должен быть

List<List<Map<String, String>>> lst =new ArrayList<ArrayList<Map<String, String>>>();

List<Map<String, String>> serviceInfoList = new ArrayList<Map<String, String>()
ArrayList<String> serviceNameList = new ArrayList<String>(); 
for (int i = 0; i < serviceInfoList.size(); i++) {
            Map<String, String> serviceInfoMp = new HashMap<String, String>();
            serviceInfoMp = serviceInfoList.get(i);

            Set<Map.Entry<String, String>> serviceInfoSet = serviceInfoMp.entrySet();

            for (Map.Entry<String, String> mapentry : serviceInfoSet) {
              if (mapentry.getKey().equals("serviceName")) {
                    serviceNameList.add(mapentry.getValue());
                }
             }
        }  

карта содержит JSON данные

означает создание отдельного списка для каждой формы имени службы ниже json и сохранить его в списке

{
  "ServiceData": {
    "ServiceInfo": [     
      {
        "trav": "20200131T173017Z",
        "real": "MyService",
        "lintruntime": "7",
        "upload": "184",
        "build": "1717",
        "buildproductruntime": "1709",
        "EXITCODE": "0",
        "totaltime": "3610"
      },
 {
        "trav": "20200131T173017Z",
        "real": "MyService",
        "lintruntime": "7",
        "upload": "184",
        "build": "1717",
        "buildproductruntime": "1709",
        "EXITCODE": "0",
        "totaltime": "3610"
      },
      {
        "trav": "20200131T173024Z",
        "real": "ERSampleService1",
        "lintruntime": "38",
        "upload": "381",
        "build": "1765",
        "buildproductruntime": "1767",
        "EXITCODE": "0",
        "totaltime": "3913"
      }
    ]
  }
} 

означает сверху Json Я хочу список размером два, поскольку два имени службы ERSampleService1 и "MyService"

и этот список должен содержать список карт с покрытием JSON данные.

в основном я хочу создать список для каждой сервисной информации ..

Я знаю, что вопрос может сбивать с толку

Но я застрял здесь ...

кто-нибудь знает, как это сделать

Короче говоря, создание списка карт и просмотр по нему

любая помощь приветствуется

1 Ответ

0 голосов
/ 06 февраля 2020

Сначала вы захотите создать самый внешний список. Затем для каждой служебной информации вы добавите список в этот внешний список. И для каждого json объекта для этой служебной информации вы создадите карту, а затем поместите эту карту во внутренний список. В итоге вы получите нечто похожее на это.

List<List<Map<String, String>>> outerList = new ArrayList<>();
    for(ServiceInfo so : serviceInfos){
        List<Map<String, String>> innerList = new ArrayList<>();
        for(JsonObject j : getJsonObjectsForThisServiceInfo(so)){
            Map<String, String> map = new HashMap<>();
            // Fill in the map with what you need
            // ...
            innerList.add(map);
        }
        outerList.add(innerList);

    }
//Use your new list after here for whatever you want :)
...