我是靠谱客的博主 过时小丸子,最近开发中收集的这篇文章主要介绍LinkedMutiValueMap的使用(一个key对应多个value),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

LinkedMutiValueMap来自Spring的 org.springframework.util包下,可以一个key对应多个value。

LinkedMutiValueMap的value统一用LinkedList保存,哪怕这只是插入一个字符串。

1. 添加数据

 MultiValueMap map = new LinkedMultiValueMap();
//添加一个Key对应一个Value,
map.add("key1", "value");
// 添加一个Key对应多个Value,以list的形式添加
map.add("key2", Lists.newArrayList("value1", "value2", "value3"));
//设置一个Key对应一个Value
map.set("key3", "value");
// 设置一个Key对应多个Value,以list的形式添加
map.set("key4", Lists.newArrayList("value1", "value2", "value3"));
//打印输出value
for (int i = 1; i <= 4; i++) {
System.out.println("key" + i + "=" + map.get("key" + i));
}

输出结果如下:

key1=[value]
key2=[[value1, value2, value3]]
key3=[value]
key4=[[value1, value2, value3]]

2. 当多个value插入到同一个key时

 MultiValueMap map = new LinkedMultiValueMap();
map.add("key1", "value");
map.add("key1", "new_value");
map.set("key2", "value");
map.set("key2", "new_value");
System.out.println(map.get("key1"));
System.out.println(map.get("key2"));

输出结果如下:

[value, new_value]
[new_value]

当使用add方法时,当key存在时会直接在原value所在的linkedlist上添加新的value;在使用set方法时,则会将原来的value覆盖,创建一个新的list。value为list时同理。

add、set方法源码如下:


public void add(K key, @Nullable V value) {
List<V> values = (List)this.targetMap.computeIfAbsent(key, (k) -> {
return new LinkedList();
});
values.add(value);
}
public void set(K key, @Nullable V value) {
List<V> values = new LinkedList();
values.add(value);
this.targetMap.put(key, values);
}

 

 

最后

以上就是过时小丸子为你收集整理的LinkedMutiValueMap的使用(一个key对应多个value)的全部内容,希望文章能够帮你解决LinkedMutiValueMap的使用(一个key对应多个value)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部