原 java Map中存放重复的key
版权声明:本文为博主原创文章,请尊重他人的劳动成果,转载请附上原文出处链接和本声明。
本文链接:https://www.91mszl.com/zhangwuji/article/details/1417
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
博主信息