Java实现数据库的groupby
之前去百度面试的时候遇到过这个问题,因为以前没想过这个问题 当时就懵逼了。
其实实现起来很简单就是个list转map
看代码
代码块
代码块语法遵循标准markdown代码,例如:
/**
* List转map工具类
* @author Gz
*
*/
public class ListToMapUtils {
public static Map<Integer,ListModel> conversion(List<ListModel> list)
{
Map<Integer,ListModel> map=new HashMap<Integer,ListModel>();
if(list!=null)
{
for(int i=0,len=list.size();i<len;i++)
{
ListModel value=list.get(i);
map.put(value.getId(), value);
}
}
return map;
}
}
/**
* list数据的对象基类
* @author Gz
*
*/
public class ListModel {
private Integer id;
private String name;
public ListModel() {}
public ListModel(Integer id, String name) {
super();
this.id = id;
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "ListModel [id=" + id + ", name=" + name + "]";
}
}
/**
* 测试类
* @author Gz
*
*/
public class MainTestListToMap {
public static void main(String[] args) {
List<ListModel> list=new ArrayList<ListModel>();
ListModel lm1=new ListModel(1,"jack");
ListModel lm2=new ListModel(2,"tom");
ListModel lm3=new ListModel(3,"tony");
list.add(lm1);
list.add(lm2);
list.add(lm3);
Map<Integer, ListModel> conversion = ListToMapUtils.conversion(list);
for (Integer key : conversion.keySet()) {
System.out.println(key+"----"+conversion.get(key));
}
}
}