您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页Multimap类

Multimap类

来源:二三娱乐

由Guava提供的类,可以让键一次可被映射到多个值(多个value共用一个key),也可以理解为”键-单个值映射”的集合。
如果原来工作中要实现:
a -> 1
a -> 2
a ->3
那么Multimap类就是
a -> [1, 2, 3]

创建Multimap
Multimap<key, value> multimap= ArrayListMultimap.create();
(还有HashMultimap、LinkedListMultimap、LinkedHashMultimap、TreeMultimap等实现类)

例如,在写一个班级的管理页面,要求点击班级可以显示出班级下的所有学生,可以以班级的name为key(如3年2班),将一个班级下的所有学生为value存到一个Multimap类中,这样方便我们遍历一个班级下的所有学生.

Multimap<Integer, Student> classStudentMap = ArrayListMultimap.create();
List<Student> students = Lists.newArrayList();
for(Student student : students ){
classStudentMap (student .getclassName,student );
}

Multimap还提供了诸如remove(K, V)、removeAll(K)、replaceValues(K, Iterable<V>)之类的方法,总之是个很强大很实用的类

但Multimap并不是map,可以使用asMap()视图获取一个Map<K, Collection<V>>。(或者用静态方法Multimaps.asMap()为ListMultimap返回一个Map<K, List<V>>。

Multimap.size()返回所有”键-单个值映射”的个数,而非不同键的个数。要得到不同键的个数,请改Multimap.keySet().size()。

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务