Guava Hashmultimap使用和预防措施
你好,大个子早上|中午|下午|晚上|早上好,我是灰色,今天我将向HashMultMap介绍一个相对基本的知识点;
基本上可以说番石榴是在Java开发项目中引入袋子的很高可能性。今天介绍的主角是一个特殊的容器 - 它可以简单地将其数据结构理解为
所以为什么您突然想到了,因为昨天,因为他不深刻理解它,他将其用作问题,而且有问题。从那以后,这会很好,反思
通常,使用新数据对象时,我们应该首先了解其数据模型。
直接查看源代码,您会发现实际存储数据的结构是
JDK中的地图中有许多实现,那是哪一个?
从建设性方法开始,查看此地图成员的初始化过程
关键是,熟悉的朋友可以很快给出答案。这张地图是我们经常使用的
接下来要注意的是价值收藏,哪种容器类型;为此,添加元素时将其定位
关键源代码如下
我相信每个人都不会陌生。当它存在时,它将直接添加到容器中;当没有存在时,将通过创建一个容器和填充地图来创建它;特定实现逻辑如下
因此,HashMultImap的基础数据存储是我们的老朋友
基本上,Hashmultimap的姿势非常简单。让我们举一个简单的例子演示。基本上,看看它。
2.1创建容器
注意以上第三个实施,需要理解的是
也就是说,基于原始容器初始化新容器,其值是一个新容器对象。上一个值中的所有元素都塞入新容器中,而不是直接引用的容器对象(因此,它不仅仅是更多。
2.2添加元素
注意
(没错,我在这里有问题...)
2.3去除元件
2.4替换元素如果我们想用新集合替换整个值,那么我们可以使用repenterValue
2.5获取元素和遍历
foreach方法的迭代
请注意,上面的顶部成员,其键仍然是hashmap的键,值在此集合中不是元素,例如容器中的值(“技能”:[100,200,300])。目前,输出如下如下
2.6输出所有密钥
他们两个有什么区别?看看一个示例
输出如下
以上是什么样的幽灵?实际上,有三个,返回的容器可以理解为列表,并且不要认真对待。
以下是一组,它将恢复重重
2.7输出所有值
通过上述理解很简单。所有值合并另一个列表。接下来,让我们看一下遍历的两种方式
实际输出如下
这里的主要介绍是Gauva容器Hashmultimap的数据模型和使用姿势。知识点相对基本。在实际使用中使用时,请记住它易于使用且易于使用。这些元素无法重复
那么,当我们希望价值成为列表时,我们如何纠正呢?
在最后一句话中,这些番石榴容器的实现并不难阅读,并且设计思想也非常典型。例如,如果我们让我们根据JDK的基本容器来到一个类似的容器,那么如何优雅地实现它来实现优雅的毛衣?这是标准答案,强烈建议对那些感兴趣的朋友使用。
如果您有一封信,那么您就不那么好。以上内容纯粹是一个家庭。由于个人能力有限,因此存在不可避免的和误解。如果您发现错误或有更好的建议,请批评和纠正。
原始:https://juejin.cn/post/7101648866096709668