第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在Android中,我如何按日期對(duì)數(shù)組項(xiàng)進(jìn)行分組?

在Android中,我如何按日期對(duì)數(shù)組項(xiàng)進(jìn)行分組?

婷婷同學(xué)_ 2023-09-27 16:47:35
對(duì)象array的    Statement:[       {       "date": "12-09-19 11:02:47",       "Country": "Bangladesh",       "Profession": "X",       "Salary": "100",       },       {       "date": "12-09-19 11:02:47",       "Country": "Bangladesh",       "Profession": "Y",       "Salary": "101",       },       {       "date": "12-09-19 11:02:47",       "Country": "Bangladesh",       "Profession": "Z",       "Salary": "102",       },       {       "date": "11-09-19 11:02:47",       "Country": "India",       "Profession": "I",       "Salary": "103",       },       {       "date": "11-09-19 11:02:47",       "Country": "India",       "Profession": "J",       "Salary": "104",       },       {       "date": "10-09-19 11:02:47",       "Country": "Nepal",       "Profession": "N",       "Salary": "105",       },       {       "date": "10-09-19 11:02:47",       "Country": "Nepal",       "Profession": "M",       "Salary": "106",       }       ]我正在嘗試創(chuàng)建一個(gè)新的array,它將創(chuàng)建一個(gè)object包含每個(gè)日期(作為鍵)和同一object.新數(shù)組應(yīng)如下所示:    "10-09-19": [    {      "Country": "Nepal",      "Profession": "M",      "Salary": "106",    },    {      "Country": "Nepal",      "Profession": "N",      "Salary": "105",    }    ],    "11-09-19": [{      "Country": "India",      "Profession": "J",       "Salary": "104",    },    {      "Country": "India",      "Profession": "I",      "Salary": "103",    }    ],    "12-09-19": [{      "Country": "Bangladesh",      "Profession": "x",       "Salary": "104",    },    {      "Country": "Bangladesh",      "Profession": "y",      "Salary": "103",    },    {      "Country": "Bangladesh",      "Profession": "z",      "Salary": "102",    }    ]
查看完整描述

4 回答

?
肥皂起泡泡

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊

使用 hashmap 明智地存儲(chǔ)數(shù)據(jù)。哈希圖的鍵將是日期。這是我的代碼,它可能會(huì)幫助您理解邏輯。


      var sortedList= HashMap<String, MutableList<Model>>() // create hashmap to store data

        var temp: MutableList<Model>? = ArrayList<Model>()

        for (item in currentList!!) {

            temp = sortedList?.get(item.date.split(" ").get(0)) // get date and remove timing


            if (temp != null)     //if this is not null it mean this contain items

                temp.add(item)

            else {

                temp = ArrayList<Model>()  //if this is null it means this is new data or new data

                temp.add(item)

            }


            sortedList?.put(item.date.split(" ").get(0), temp)

    }

我的代碼是 kotlin 的,對(duì)此深表歉意??鞓?lè)編碼。


查看完整回答
反對(duì) 回復(fù) 2023-09-27
?
慕村225694

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊

我假設(shè)你提供的都是JSON字符串(但它們看起來(lái)無(wú)效),那么你可以按如下方式實(shí)現(xiàn)轉(zhuǎn)換:


ObjectMapper mapper = new ObjectMapper();

ObjectNode root = (ObjectNode) mapper.readTree(jsonStr);

ObjectNode rootNew = mapper.createObjectNode();

for (int i = 0; i < root.get("Statement").size(); i++) {

    String date = root.get("Statement").get(i).get("date").asText().split(" ")[0];

    ObjectNode node = (ObjectNode) ((ObjectNode) root.get("Statement").get(i));

    node.remove("date");

    if (rootNew.has(date)) {

        ((ArrayNode) rootNew.get(date)).add(node);

    } else {

        rootNew.put(date, mapper.createArrayNode().add(node));

    }

}

System.out.println(rootNew.toString());

控制臺(tái)輸出:


{

  "12-09-19":[

    {

      "Country":"Bangladesh",

      "Profession":"X",

      "Salary":"100"

    },

    {

      "Country":"Bangladesh",

      "Profession":"Y",

      "Salary":"101"

    },

    {

      "Country":"Bangladesh",

      "Profession":"Z",

      "Salary":"102"

    }

  ],

  "11-09-19":[

    {

      "Country":"India",

      "Profession":"I",

      "Salary":"103"

    },

    {

      "Country":"India",

      "Profession":"J",

      "Salary":"104"

    }

  ],

  "10-09-19":[

    {

      "Country":"Nepal",

      "Profession":"N",

      "Salary":"105"

    },

    {

      "Country":"Nepal",

      "Profession":"M",

      "Salary":"106"

    }

  ]

}


查看完整回答
反對(duì) 回復(fù) 2023-09-27
?
拉丁的傳說(shuō)

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊

首先感謝各位回答我的問(wèn)題。我后來(lái)找到了一個(gè)解決方案。我想我應(yīng)該與大家分享這一點(diǎn)。


JSONArray statementArray = response.getJSONArray("statement");


Map<String, List<String>> map= new HashMap<String, List<String>>();

for(int i = 0; i < statementArray.length(); i ++) {


   JSONObject mJsonObjectStatement = statementArray.getJSONObject(i);

   String date= mJsonObjectStatement.getString("date").split(" ")[0];

   List<String> valSet = new ArrayList<String>();

   valSet.add(0,mJsonObjectStatement.getString("Country"));

   valSet.add(1,mJsonObjectStatement.getString("Profession"));

   valSet.add(2,mJsonObjectStatement.getString("Salary"));

   map.put(date,valSet);

}

for (Map.Entry<String, List<String>> entry : transactionReportMap.entrySet()) {

   String key = entry.getKey();

   List<String> values = entry.getValue();

   Log.e("Key = " , key);

   Log.e("Values = " , values + "n");

}

Log.e("Result:",map.toString());

上述解決方案沒(méi)有提供相同的結(jié)果,但它達(dá)到了我的目的。


我找到的另一個(gè)解決方案


JSONArray statementArray = response.getJSONArray("statement");


ObjectMapper mapper = new ObjectMapper();

Map<String, List<String>> map= new HashMap<String, List<String>>();

for(int i = 0; i < statementArray.length(); i ++) {

   JSONObject mJsonObjectStatement = statementArray.getJSONObject(i);

   String date= mJsonObjectStatement.getString("date").split(" ")[0];

   if (transactionReportMap.containsKey(date)) {

       map.get(date).add(date);

   } else {

       ArrayList<String> infoList = new ArrayList<String>();

       infoList.add(mJsonObjectStatement.getString("Country"));

       infoList.add(mJsonObjectStatement.getString("Profession"));

       infoList.add(mJsonObjectStatement.getString("Salary"));

       map.put(date, infoList);

   }

}

StringWriter result = new StringWriter();

try {

  mapper.writeValue(result, map);

} catch (IOException e) {

  e.printStackTrace();

}

Log.e("Result: ",result+"");


查看完整回答
反對(duì) 回復(fù) 2023-09-27
?
開(kāi)心每一天1111

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊

對(duì)于這個(gè)問(wèn)題來(lái)說(shuō)可能為時(shí)已晚,但我正在分享我的答案。


            //Define an empty hash map

            Map<String, JSONObject> finalMap = map;


            for (JSONObject object : Statement) {

                String key = object.getString("date");


                //Split the date from date time

                if (key.contains(" ")) {

                    key = key.split(" ")[0];

                }


                if (finalMap.containsKey(key)) {

                    JSONArray list = finalMap.get(key);

                    list.put(student);


                } else {

                    JSONArray list = new JSONArray();

                    list.put(object);


                    finalMap.put(key, list);

                }

            }

最后,您可以將哈希映射轉(zhuǎn)換為您需要的任何類型。


查看完整回答
反對(duì) 回復(fù) 2023-09-27
  • 4 回答
  • 0 關(guān)注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)