对List<Map>相同的key值的数据进行特殊处理
想在有如下的一个集合数据
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class TestListMap {
// 初始化List<Map<String, String>>
public static List<Map<String, String>> init() {
List<Map<String, String>> lists = new ArrayList<Map<String, String>>();
Map<String, String> map0 = new HashMap<String, String>();
map0.put("dtime", "20170101");
map0.put("ua", "110.5");
lists.add(map0);
Map<String, String> map1 = new HashMap<String, String>();
map1.put("dtime", "20170101");
map1.put("ua", "220.3");
lists.add(map1);
Map<String, String> map2 = new HashMap<String, String>();
map2.put("dtime", "20170102");
map2.put("ua", "110");
lists.add(map2);
Map<String, String> map3 = new HashMap<String, String>();
map3.put("dtime", "20170102");
map3.put("ua", "220.32");
lists.add(map3);
Map<String, String> map4 = new HashMap<String, String>();
map4.put("dtime", "20170103");
map4.put("ua", "110");
lists.add(map4);
Map<String, String> map5 = new HashMap<String, String>();
map5.put("dtime", "20170103");
map5.put("ua", "220.32");
lists.add(map5);
return lists;
}
public static void main(String[] args) {
// 初始化集合
List<Map<String, String>> list = init();
}
}
需要计算出同一个时间段之内 ua 在 198~235.4 之间的 占比。
各位大神,有什么好点的方法去解决这个问题吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
问题我自己已经找到了完整的解决方案,现在附上代码。有问题,或者有更好的解决方案 欢迎交流的。
除了遍历,想不出来更好的办法。
这个好像是所有时间段之内的占比了,不是在同一时间内的。而且,用的jdk1.6 的,不能更换1.8的
回复
自己遍历一下map, 根据时间进行统计个数
代码使用了JDK 8的Lambda表达式, 所以最低版本为JDK 1.8
测试结果如下图: