91名师指路-头部
91名师指路

java Map中存放重复的key

由于某些原因,现在不支持支付宝支付,如需要购买源码请加博主微信进行购买,微信号:13248254750

java Map中存放重复的key一共有2种方式:

1)使用 apache的commons-collections4

2)使用 google的guava


一:使用apache的commons-collections4

1.1)引入pom

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
</dependency>


1.2) 代码如下

package com.mszl.web.controller;

import org.apache.commons.collections4.MultiMapUtils;
import org.apache.commons.collections4.MultiValuedMap;
import org.apache.commons.collections4.multimap.ArrayListValuedHashMap;
import org.apache.commons.collections4.multimap.HashSetValuedHashMap;

public class Test1 {

public static void main(String[] args) {
MultiValuedMap<String, String> map1 = new ArrayListValuedHashMap<>();
map1.put("张三", "18");
map1.put("张三", "20");
map1.put("张三", "30");
System.out.println(map1); // {张三=[18, 20, 30]}

MultiValuedMap<String, String> map2 = new HashSetValuedHashMap<>(); // value不能重复, 如果重复了会去重
map2.put("张三", "18");
map2.put("张三", "20");
map2.put("张三", "20");
System.out.println(map2); // {张三=[20, 18]}

MultiValuedMap<String, String> map3 = new HashSetValuedHashMap<>(); // value不能重复, 如果重复了会去重
map3.put("张三", "18");
map3.put("张三", "25");
map3.put("张三", "35");
MultiValuedMap<String, String> valueMap= MultiMapUtils.unmodifiableMultiValuedMap(map3); // unmodifiableMultiValuedMap线程安全
System.out.println(valueMap); // {张三=[35, 18, 25]}
}


}


执行结果:

{张三=[18, 20, 30]}
{张三=[20, 18]}
{张三=[35, 18, 25]}


二:使用 google的guava

2.1)引入pom

<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>31.0.1-jre</version>
</dependency>


2.2)代码如下

package com.mszl.web.controller;

import com.google.common.collect.LinkedHashMultimap;
import com.google.common.collect.Multimap;
import com.google.common.collect.TreeMultimap;

public class Test1 {

public static void main(String[] args) {
Multimap<String, String> map4 = LinkedHashMultimap.create();
map4.put("张三", "20");
map4.put("张三", "25");
map4.put("张三", "28");
System.out.println(map4); // {张三=[20, 25, 28]}


Multimap<String, String> map5 = TreeMultimap.create();
map5.put("张三", "20");
map5.put("张三", "22");
map5.put("张三", "27");
System.out.println(map5); // {张三=[20, 22, 27]}
}


}


执行结果:

{张三=[20, 25, 28]}
{张三=[20, 22, 27]}



参考资料:

https://blog.csdn.net/m0_52789121/article/details/123639448



2022-12-06 09:23:39     阅读(565)

名师出品,必属精品    https://www.91mszl.com

联系博主    
用户登录遮罩层
x

账号登录

91名师指路-底部