hashmultimap java_【Java 学习笔记】 HashMultimap(guava)

因为项目需要,又开始写Java代码。C++有一套固定的STL,而java的容器则灵活的多,最基本的应该是java.util.*下面的而一些容器,当然在其他的包里也有其他继承了该包为了各自需求实现的一些容器。

HashMutliMap

STL中有MultiMap,而java的util包中并没有这个容器。想自己写也没有这个时间,于是去网上搜了下。发现了在google的guava libary的包下有这个容器。

google类库的下载地址:http://code.google.com/p/guava-libraries/wiki/Release09。

import的路径是:com.google.common.collect.Multimap;

在这个包中google实现了一系列的接口和容器,Multimap是一个定义的接口,继承接口生成了许多的各种容器,非常方便。

继承Multimap有许多的Multimap变种。分别有:

1.ArrayListMultimap:

2.ForwardingMultimap:

3.HashMultimap:

4.ImmutableListMultimap:

5.ImmutableMultimap:

6.ImmutableSetMultimap:

7.LinkedHashMultimap:

8.LinkedListMultimap:

9.TreeMultimap:

这边使用HashMultimap做例子了解下使用过程

--定义:

HashMultimapdoc_numberic=HashMultimap.create();

map.put(2, 4);

map.put(1, 2);

map.put(1, 3);

map.put(2, 6);

map.put(2, 4);

map.put(11, 2);

map.put(12, 3);

map.put(21, 6);

map.put(6, 7);

--遍历:可以使用遍历器进行遍历,也可以获取其Key值进行遍历

使用遍历器遍历:

Iterator iter=map.entries().iterator();while(iter.hasNext())

{

Map.Entryentry=(Map.Entry)iter.next();

System.out.println(String.format("%d:%d", entry.getKey(),entry.getValue()));

}

结果:

1:2

1:3

2:4

2:6

21:6

6:7

11:2

12:3

使用Key值遍历,key值可以得到一个全部键值的MultiSet或者是一个没有重复键值的KeySet,这边使用没有重复键值的做例子

Set keys = map.keySet();

for(int key:keys)

{

String result = String.format("%d:", key);

Set values = map.get(key);

for(int value:values)

{

result= result+" "+value;

}

System.out.println(result);

}结果:

1: 2 3

2: 4 6

21: 6

6: 7

11: 2

12: 3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值