一个key值对应多个value值的Map封装

本文介绍了一种基于ConcurrentHashMap思想实现的ParameterMap,该Map允许一个key对应多个value值。通过在Map的Value中嵌套另一个Map,作者模拟了ConcurrentHashMap的segment机制,实现了多级映射的功能。代码示例展示了如何创建和使用这种多级ParameterMap。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近学习并发容器+遇到tomcat的ParameterMap,不由想自己实现一个可以有一个key值对应多个value值的Map。借用ConcurrentHashMap的实现思想,我在一个Map的Value里边一个存放一个新的Map,模拟ConcurrentHashMap的segment来实现上面的需求。代码如下:

	public static void main(String[] args) {
		ParameterMap<String,String> strMap = new ParameterMap<String,String>();
		strMap.put("key_1", "value_1");
		strMap.put("key_2", "value_2");
		ParameterMap<String,String> strMap2 = new ParameterMap<String,String>();
		strMap2.put("key_1", "value_3");
		strMap2.put("key_2", "value_4");
		
		ParameterMap<String,ParameterMap<String,String>> mapMap= new ParameterMap<String,ParameterMap<String,String>>();
		mapMap.put("strMap", strMap);
		mapMap.put("strMap2", strMap2);
		
		Set<String> strSet = mapMap.keySet();
		Iterator<String> setIter = strSet.iterator();
		while(setIter.hasNext()) {
			String key = setIter.next();
			
			ParameterMap<String,String> strMap_1  = mapMap.get(key);
			Set<String> strSet_1 = strMap_1.keySet(); 
			Iterator<String> setIter_1 = strSet_1.iterator();
			while(setIter_1.hasNext()) {
				String str = setIter_1.next();
				if("key_1".equals(str)) {
					System.err.println(str+"---"+strMap_1.get(str));
				}
			}
		}
	}

输出:

	key_1---value_1
	key_1---value_2

做得很粗糙,仅仅是表面上实现了初始的效果。当然,以上当做抛砖引玉吧,欢迎各位路过的大佬前来添砖加瓦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值