Ⅰ java list分组
没明白你要的目的. 是想用list 集合来输出结果.还是在数据库里查询出 这样格式的结果.
如果是在java 后台.可以先创建Map 集合.Map<String,List<Object>> key代表 颜色 及尺寸. value 是一个List 集合.list 中存储 红-1 绿-2 蓝-3 这样的元素..
Ⅱ java 如何在数据库里按月份来保存数据
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
*
* @author jwh-zh
*/
public class DateOperation {
public static void main(String args[]){
Date d1 = new Date("2012-01-02");
Date d2 = new Date("2012-03-02");
int m1 = d1.getMonth();
int m2 = d2.getMonth();
Map a = new HashMap();
for (int i = m1; i < m2; i++) {
Date d3 = d1;
if(i==m1){
d3.setDate(getLastDayOfMonth(d1.getYear(), d1.getMonth()+1));
a.put(d1,d3);
}else{
d3.setMonth(i);
d3.setDate(1);
Date d5 = d3;
d5.setDate(getLastDayOfMonth(d5.getYear(), d5.getMonth()+1));
a.put(d3, d5);
}
}
Date d4 = d2;
d4.setDate(1);
a.put(d4, d2);
}
private static int getLastDayOfMonth(int year, int month) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
// 某年某月的最后一天
return cal.getActualMaximum(Calendar.DATE);
}
}
如果涉及到跨年的,将判断条件和年份绑定起来.其余基本上不变.
Ⅲ java 按日期分组 算法
直接用SQL语句
select count(id) as 数量,day(date) as 生产日期 from table group by day(date) order by day(czrq)
如果库里不止一个月的数据,那么再加个where条件
Ⅳ Java 对数据分组
把从数据库读出来的ResultSet 传入这个方法
public static Map<Long, List<Long>> orgnaizeData(ResultSet rs) {
Map<Long, List<Long>> result = null;
try {
if (rs.getRow() > 0) {
result = new HashMap<Long, List<Long>>();
while (rs.next()) {
Long key = rs.getLong(1);
Long value = rs.getLong(2);
if (result.containsKey(key)) {
result.get(key).add(value);
} else {
List<Long> valueList = new ArrayList<Long>();
valueList.add(value);
result.put(key, valueList);
}
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}