如下要根据时间来区分组别,来展示list数据,如下算法,可以实现:
/**
* 从服务器读取保存的经济数据
*
* @return
* @author qiulinhe
* @createTime 2016年6月7日 下午3:12:49
*/
private ArrayList<Category> getData() {
ArrayList<Category> listData = new ArrayList<Category>();
Category categoryItem;
result = TradeAPI.getInstance().queryEconomicDatas();
if (result.isSucceed()) {
ecoDatas = result.getDataList();
}
//以日期进行分组
for (Iterator it = ecoDatas.iterator(); it.hasNext();) {
EconomicData ecodata = (EconomicData) it.next();
if (mapGroup.containsKey(ecodata.getDate())) { //如果已经存在这个数组,就放在这里
List ecoDatasGroup = mapGroup.get(ecodata.getDate());
ecoDatasGroup.add(ecodata);
mapGroup.put(ecodata.getDate(), ecoDatasGroup);
} else {
List ecoDatasGroup = new ArrayList(); //重新声明一个数组list
ecoDatasGroup.add(ecodata);
mapGroup.put(ecodata.getDate(), ecoDatasGroup);
}
}
//对分组的数据进行封装
for (String key : mapGroup.keySet()) {
List<EconomicData> ecodatagroup = mapGroup.get(key);
categoryItem = new Category(key);
for (EconomicData ecodata : ecodatagroup) {
categoryItem.addItem(ecodata);
}
listData.add(categoryItem);
}
return listData;
}