Java Struging以简化HashMap对象的放置
我正在创建一个SimpleExpandableListAdapter,在没有大量代码的情况下,很难将对象放入相应的组中 布局如下: [星期一] -childGroup1数据 [星期二] -childGroup2数据 我有一个JSON数组,它为用户返回一个课程列表,这些课程需要按天排序,并放在相应的可扩展标题中。但是我的代码很长,我想知道是否有更简单的方法可以做到这一点,我可能忽略了 我获取JSON对象,检查它的日期,并将该课程的数据存储到days组中 我觉得我编写这段代码的方式太长了,我正在寻找改进这段代码的方法,以使其更具动态性Java Struging以简化HashMap对象的放置,java,android,json,list,hashmap,Java,Android,Json,List,Hashmap,我正在创建一个SimpleExpandableListAdapter,在没有大量代码的情况下,很难将对象放入相应的组中 布局如下: [星期一] -childGroup1数据 [星期二] -childGroup2数据 我有一个JSON数组,它为用户返回一个课程列表,这些课程需要按天排序,并放在相应的可扩展标题中。但是我的代码很长,我想知道是否有更简单的方法可以做到这一点,我可能忽略了 我获取JSON对象,检查它的日期,并将该课程的数据存储到days组中 我觉得我编写这段代码的方式太长了,我正在寻找
//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);
//子数据
List childData=new ArrayList();
List childGroup0=新建ArrayList();
List childGroup1=new ArrayList();
List childGroup2=new ArrayList();
List childGroup3=new ArrayList();
List childGroup4=new ArrayList();
List childGroup5=新建ArrayList();
List childGroup6=new ArrayList();
for(int i=0;i
是的,去掉所有那些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);
}
List childData=new ArrayList();
对于(int i=0;i+1)。此外,为了简洁起见,再加上多态性的“适当”使用,您可能应该将HashMap
泛型参数更改为Map
:childData=new ArrayList()
(以及在您有列表的其他地方)。