判断Map的value值是否相等,相等则将key值组成字符串

来源:互联网 发布:mac xml 格式化工具 编辑:程序博客网 时间:2024/06/11 14:09

比如一组这样的数据(字符串):

1394 0012 7020 9671:2015-03-01,1789 0012 4873 9180:2015-03-01,0284 0012 3848 4900:2015-03-02,1309 0012 8281 0452:2015-03-03,2889 0012 8475 0897:2014-12-06,1044 0012 2564 1807:2014-12-06,
目的想将相同日期的value值对应的key值组合在一起,如:

1394 0012 7020 9671,1789 0012 4873 9180:2015-03-01
一开始想将改数据转为Map<String,String>来实现,但因为Map的key值不可以相等,不可以实现,但可以将这个Map再转为Map<String,List<String>>,即将Map<String,String>的key值add到List<String>中,例子如下:

其中ewcode为上面一组字符串。

String codetime[] = ewcode.split(",");Map<String,List<String>> sendMap = new HashMap<String,List<String>>();for (int i = 0; i < codetime.length; i++) {String codes = codetime[i];String time = codes.substring(codes.length()-10);if(sendMap.containsKey(time)){  //i>0时(第二步开始)执行List<String> list = sendMap.get(time);  //如果此条数据的时间与之前的重复时,list取得之前相对应的value值,否则为nulllist.add(codes.substring(0, 19));  //list增加当前字符串的":"之前的数据sendMap.put(time, list);  //如果time重复,则list覆盖}else{  //i=0时执行第一步List<String> list= new ArrayList<String>();list.add(codes.substring(0, 19));sendMap.put(time, list);  //将时间设为key值}}

这个例子也可以反推到取得Map中相同Value值的Key值。

0 1
原创粉丝点击