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

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

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值,否则为null
		list.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值。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值