新集合类的使用:BidiMap、MultiMap、LazyMap

最近在项目中发现apache common.collections中新增了几个集合类,对之前项目中遇到的一些想要解决的问题,提供了极为方便的方案

BitMap:

BidiMap,直译为双向Map,也就是可以通过key找value,也可以通过value找到key。这点在我们日常的 key-value 匹配的时候很方便。

因为我们除此之外需要通过代码找到名称之外,也需要处理用户输入的名称,然后获取代码。

所以,在BidiMap当中,不光是key不能重复,value也不可以重复。


MultiMap:

MultiMap就是说一个key不再是简单的指向一个对象,而是一组对象。

add()和remove()的时候,跟普通话的Map无异,只是在get()时返回一个Collection.

利用MultiMap,我们可以很方便的往一个key上放数量不定的对象,也就实现了一对多


LazyMap:

LazyMap 意思就是这个Map中的键/值对一开始并不存在,当被调用到时才创建。

我们这样来理解,我们需要一个Map,但是由于创建成员的方法很“重”(比如数据库访问)

我们只有在调用get()时才知道如何创建,或者Map中出现的可能性很多。

我们无法在get()之前添加所有可能出现的键/值对。

我们觉得没有必要去初始化一个Map而又希望它在必要时自动处理数据。

关于LazyMap的使用再说两点,一般需要使用LazyMap.decorate(Map,Factory)的方式来创建,实现Factory中的create方法。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值