一个List里面存放了1个对象,对象有2个字段,时间戳,值这样的List可能有若干个,数据大致如下:
第一个list ps:值空格后面的是序列号,表示这个是第几个list
1352822400
12916.73 0
1352822700
11624.7 0
1352823000
10872.0 0第二个list
1352822400
12916.73 1
1352822700
11624.7 1
1352823000
10872.0 1
1352823300
10427.49 1我想提取出相同的时间戳作为key,value部分是一个List<String> 里面存放这个时间戳的2个值,如果是3个list,那就应该是3个值。求如何封装这样一个map?在线等
第一个list ps:值空格后面的是序列号,表示这个是第几个list
1352822400
12916.73 0
1352822700
11624.7 0
1352823000
10872.0 0第二个list
1352822400
12916.73 1
1352822700
11624.7 1
1352823000
10872.0 1
1352823300
10427.49 1我想提取出相同的时间戳作为key,value部分是一个List<String> 里面存放这个时间戳的2个值,如果是3个list,那就应该是3个值。求如何封装这样一个map?在线等
解决方案 »
- 问一个捕获异常的问题
- 谁帮我下,用户注册,注册成功之后然后在邮箱里面激活刚注册的用户,数据存储是用xml传得,不是存数据库的,谁帮忙下
- hibernate+mysql报错
- spring的异常大家是怎么处理的?
- SOAPFault信息怎么获取到
- ??急 急 ?? 谁能跟我说说j2sdk类库中的各种框架吗?不懂啊!
- 我用tomcat做服务器,调试我自已的jsp文件,怎么出现这样的错误,请指教。。。谢谢
- 高分求助!tomcat的资源里面oracle数据库的部分总是配不对
- 正则表达式如何判断输入的字符是全英文或者是英数混合
- shh框架总是报空指针异常,求帮助!
- 这个正则表达式为什么是false
- hibernate 数据字典取值问题
然后取出其时间戳,在Map中找找有没有:没有就增加一个空的List进去;
然后把value取出来(这就是那个 List),并add当前元素的值。
Map<Integer, List<FluxDetailVo>> comparemap) {
Set<Integer> keyset = comparemap.keySet();
Map<Long, List<String>> map = new HashMap<Long, List<String>>();
for (Iterator it = keyset.iterator(); it.hasNext();) {
Integer key = (Integer) it.next();
List<FluxDetailVo> list = comparemap.get(key);
for (FluxDetailVo fluxDetailVo : list) {
List<String> valueslist = new ArrayList<String>();
long timestamp = fluxDetailVo.getTimestamp();
map.put(timestamp, valueslist);
} for (FluxDetailVo fluxDetailVo : list) {
long timestamp = fluxDetailVo.getTimestamp();
String value = fluxDetailVo.getFluxdata() + " " + key;
if (map.containsKey(timestamp)) {
List<String> valuelist = map.get(timestamp);
valuelist.add(value);
}
}
}
}大哥,我是这么写的,但遍历出来的数据,list里面只有最后add的数据,我吓尿了
for (FluxDetailVo fluxDetailVo : list) {
List<String> valueslist = new ArrayList<String>();
long timestamp = fluxDetailVo.getTimestamp();
map.put(timestamp, valueslist);
}
把你上一次外循环所积累的数据全部给清理掉,实际上就相当于:
map.put(fluxDetailVo.getTimestamp(), new ArrayList<String>()); //神啊,你每次都new一个新的建议修改的循环结构(片段)如下: for (Iterator it = keyset.iterator(); it.hasNext();) {
Integer key = (Integer) it.next();
List<FluxDetailVo> list = comparemap.get(key);
for (FluxDetailVo fluxDetailVo : list) {
long timestamp = fluxDetailVo.getTimestamp();
String value = fluxDetailVo.getFluxdata() + " " + key;
if (!map.containsKey(timestamp)) {
map.put(timestamp, new ArrayList<String>());
}
List<String> valuelist = map.get(timestamp);
valuelist.add(value);
}
}