一个纠结的问题
做个简单的考勤。
Excell表格是这样子的
学生编号 员工姓名 打卡日期 打卡时间
00000001 刘二哥 2011-03-04 08:21:59
00000001 刘二哥 2011-03-04 18:00:59
00000002 张三哥 2011-03-04 08:21:59
00000002 张三哥 2011-03-04 15:21:59
00000002 张三哥 2011-03-04 16:21:59
我的做法是遍历Excell表格获得数据后。把对象封装成一个员工类型的list里面,。if(编号和姓名相等) 则判断时间。现在的问题是一天有三次打卡或者一次打卡。怎么比较。能不能给些代码
for (Employee employee : list) {
System.out.println(employee.getUserId()+"->"+employee.getUserName()+"->"+employee.getTime());
}
怎么比较比较好,或者有比较好的想法。
------解决方案--------------------
如果你只是想存储数据,那么可以把一个人的数据做成一个HashMap,
map.put("id", "000001");
map.out("name", "dsgasdfg");
ArrayList recordList = new ArrayList();
recordList.add("08:21:59");
...
map.out("record", recordList);
这个是结构。
判断的话要看数据是否规整,如果说已经排序了,一个人一天的数据都在一起。那么只要id,name,date不一样了,就是另一个人的数据了,list放到map里,然后list=new ArrayList();就行了。
最稳妥的是都用map。一个人还是一个map,所有人一个大map。没条数据都可以先根据个人ID去大map中去,如果没有就创建。如果有取出来的map中的recordlist在加数据就行了。结构可能会复杂一些。但比较规整。