[b]需求:
从数据库取出表的List对象,通过判断List<bean>的主键判断该List是否有相同的属性值,如果有相同属性值,其他的数值叠加。做了个demo。[/b]
bean:
实现类:
从数据库取出表的List对象,通过判断List<bean>的主键判断该List是否有相同的属性值,如果有相同属性值,其他的数值叠加。做了个demo。[/b]
bean:
package com.bean;
public class bean {
private String type;
private Integer num;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public Integer getNum() {
return num;
}
public void setNum(Integer num) {
this.num = num;
}
}
实现类:
package com.main;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.bean.bean;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
List<bean> list = new ArrayList<bean>();
bean demobean6 = new bean();
demobean6.setType("type3");
demobean6.setNum(10);
list.add(demobean6);
bean demobean = new bean();
demobean.setType("type1");
demobean.setNum(2);
list.add(demobean);
bean demobean5 = new bean();
demobean5.setType("type3");
demobean5.setNum(10);
list.add(demobean5);
bean demobean2 = new bean();
demobean2.setType("type1");
demobean2.setNum(30);
list.add(demobean2);
bean demobean3 = new bean();
demobean3.setType("type1");
demobean3.setNum(10);
list.add(demobean3);
bean demobean4 = new bean();
demobean4.setType("type2");
demobean4.setNum(10);
list.add(demobean4);
bean demobean7 = new bean();
demobean7.setType("type8");
demobean7.setNum(1090);
list.add(demobean7);
/*
* 数据结构可以考虑用Map,因为Map相同key值只能有一个,当有相同key值对象put进来时,Map会擦写掉原对象. 实现类似group
* by的功能.
*/
Map<String, Integer> result = new HashMap<String, Integer>();
sort: for (bean item : list) {
if (result.get(item.getType()) == null) {
result.put(item.getType(), item.getNum());// 如果没有此类型,则添加此类型的数值
continue sort;
}
// 如果有此类型,则把此类型的数值修改为-->原来的数值+新数值,实现类似sum功能
result.put(item.getType(), item.getNum()
+ result.get(item.getType()));
}
for (String key : result.keySet()) {
System.out.println(key + " : " + result.get(key));
}
}
}