例题1:模拟sql的group by
import java.util.*;
public class GroupBy {
public static void main(String[] args) {
List<JavaBean> list = new ArrayList<JavaBean>();
list.add(new JavaBean("来源A", 100));
list.add(new JavaBean("来源B", 200));
list.add(new JavaBean("来源C", 300));
list.add(new JavaBean("来源B", 6600));
list.add(new JavaBean("来源A", 99800));
List<JavaBean> groupList = getListByGroup(list);
for (JavaBean bean : groupList) {
System.out.print(bean.getGroup() + " ");
System.out.println(bean.getMoney());
}
}
private static List<JavaBean> getListByGroup(List<JavaBean> list) {
List<JavaBean> result=new ArrayList<>();
Map<String,Integer> temp=new HashMap<>();
for(JavaBean item:list){
temp.put(item.getGroup(),temp.getOrDefault(item.getGroup(),0)+item.getMoney());
}
for(Map.Entry<String,Integer> item:temp.entrySet()){
result.add(new JavaBean(item.getKey(),item.getValue()));
}
return result;
}
}
class JavaBean {
private String group;
private int money;
public JavaBean() {
}
public JavaBean(String group, int money) {
this.group = group;
this.money = money;
}
public String getGroup() {
return group;
}
public void setGroup(String group) {
this.group = group;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
}
例题2:模拟电梯调度
https://www.jb51.net/article/145965.htm