gpt4 book ai didi

java - 努力简化 HashMap 对象放置

转载 作者:行者123 更新时间:2023-11-30 03:11:01 25 4
gpt4 key购买 nike

我正在创建一个 SimpleExpandableListAdapter 并且在没有大量代码的情况下无法将对象放入相应的组中。

布局是:[周一]- childGroup1 数据[周二]- childGroup2 数据

我有一个 JSON 数组,它返回用户的类(class)列表,这些需要按天排序,并放入相应的可扩展标题中,但是我的代码很长,我想知道是否有更简单的方法做这个我可能忽略了?

我正在获取 JSON 对象,检查它的日期并将该类(class)的数据存储到天组中。

我觉得我编写这段代码的方式太长了,并且正在寻找改进这段代码的方法,以使其更具动态性。

//child data
List<List<HashMap<String, String>>> childData = new ArrayList<List<HashMap<String, String>>>();
List<HashMap<String,String>> childGroup0 = new ArrayList<HashMap<String,String>>();
List<HashMap<String,String>> childGroup1 = new ArrayList<HashMap<String,String>>();
List<HashMap<String,String>> childGroup2 = new ArrayList<HashMap<String,String>>();
List<HashMap<String,String>> childGroup3 = new ArrayList<HashMap<String,String>>();
List<HashMap<String,String>> childGroup4 = new ArrayList<HashMap<String,String>>();
List<HashMap<String,String>> childGroup5 = new ArrayList<HashMap<String,String>>();
List<HashMap<String,String>> childGroup6 = new ArrayList<HashMap<String,String>>();
for (int i = 0; i < jArray.length(); i++) {
JSONObject jObj = jArray.getJSONObject(i);

HashMap<String, String> hm = new HashMap<String, String>();
hm.put("moduleName", jObj.getString("moduleName"));
hm.put("startTime",
(jObj.getString("startTime")).substring(0, 5));
hm.put("endTime",
(jObj.getString("endTime")).substring(0, 5));
hm.put("group", jObj.getString("group"));
hm.put("roomName", jObj.getString("roomName"));
hm.put("firstName", jObj.getString("firstName"));
hm.put("lastName", jObj.getString("lastName"));

switch (Integer.parseInt(jObj.getString("day"))){
case 0:
childGroup0.add(hm);
break;
case 1:
childGroup1.add(hm);
break;
case 2:
childGroup2.add(hm);
break;
case 3:
childGroup3.add(hm);
break;
case 4:
childGroup4.add(hm);
break;
case 5:
childGroup5.add(hm);
break;
case 6:
childGroup6.add(hm);
break;
}
}
childData.add(childGroup0);
childData.add(childGroup1);
childData.add(childGroup2);
childData.add(childGroup3);
childData.add(childGroup4);
childData.add(childGroup5);
childData.add(childGroup6);

最佳答案

是的,摆脱所有那些 childGroup 对象,并将它们作为列表项添加到您的 childData 中。如果 jObj.getString("day") > 6,这也会导致错误,所以也许您想在其中添加一些逻辑来说明它是否 > 6,然后将其添加到不同的组。

List<List<HashMap<String, String>>> childData = new ArrayList<List<HashMap<String, String>>>();
for(int i=0;i<6;i++)
childData.add(new ArrayList<HashMap<String,String>>());
for (int i = 0; i < jArray.length(); i++) {
JSONObject jObj = jArray.getJSONObject(i);

HashMap<String, String> hm = new HashMap<String, String>();
hm.put("moduleName", jObj.getString("moduleName"));
hm.put("startTime",
(jObj.getString("startTime")).substring(0, 5));
hm.put("endTime",
(jObj.getString("endTime")).substring(0, 5));
hm.put("group", jObj.getString("group"));
hm.put("roomName", jObj.getString("roomName"));
hm.put("firstName", jObj.getString("firstName"));
hm.put("lastName", jObj.getString("lastName"));

childData.get(Integer.parseInt(jObj.getString("day"))).add(hm);
}

关于java - 努力简化 HashMap 对象放置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20978261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com