因为项目需要,又开始写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

hashmultimap java_【Java 学习笔记】 HashMultimap(guava)相关推荐

  1. java学习笔记11--Annotation

    java学习笔记11--Annotation Annotation:在JDK1.5之后增加的一个新特性,这种特性被称为元数据特性,在JDK1.5之后称为注释,即:使用注释的方式加入一些程序的信息. j ...

  2. java学习笔记13--反射机制与动态代理

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...

  3. 准备写java学习笔记

    准备写java学习笔记 java int 转载于:https://blog.51cto.com/cryingcloud/1975267

  4. Java学习笔记--StringTokenizer的使用

    2019独角兽企业重金招聘Python工程师标准>>> Java Tips: 使用Pattern.split替代String.split String.split方法很常用,用于切割 ...

  5. java学习笔记12--异常处理

    java学习笔记系列: java学习笔记11--集合总结 java学习笔记10--泛型总结 java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 j ...

  6. Java学习笔记(十)--控制台输入输出

    输入输出 一.控制台输入 在程序运行中要获取用户的输入数据来控制程序,我们要使用到 java.util 包中的 Scanner 类.当然 Java 中还可以使用其他的输入方式,但这里主要讲解 Scan ...

  7. java学习笔记16--I/O流和文件

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input  Output)流 IO流用来处理 ...

  8. java学习笔记15--多线程编程基础2

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note15.html,转载请注明源地址. 线程的生命周期 1.线程的生命周期 线程从产生到消亡 ...

  9. java学习笔记14--多线程编程基础1

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note14.html,转载请注明源地址. 多线程编程基础 多进程 一个独立程序的每一次运行称为 ...

  10. java学习笔记11--集合总结

    java学习笔记系列: java学习笔记10--泛型总结 java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Ob ...

最新文章

  1. You should rebuild using libgmp = 5 to avoid timing attack vulnerability.
  2. python爬虫有几种方法_基于Python爬虫的几种方法,python
  3. 制作多域名(SAN/UCC)CSR(证书请求文件)
  4. 4.5. Rspamd
  5. Dreamweaver里文档工具栏位置
  6. 代码精进之路读后感(三)
  7. Mac下.DS_Store删除、禁止生成以及恢复生成方式
  8. Mybatis高级映射一对一查询
  9. 上海交大计算机基础高万萍老师怎么样,上海交通大学网络教育学院.ppt
  10. 2022-08-26 Unity视频播放3——VideoPlayer
  11. python物性库能调用哪些物质_Python 调用 CoolProp 计算介质的物性
  12. 行政区划分与省直辖县级市
  13. 阿里云首席安全科学家吴翰清的思考:弹性安全网络,构建下一代安全的互联网...
  14. 使用SaltStack Returner将Salt作业信息接入Elasticsearch的实践(踩坑)
  15. 我男朋友是产品经理......
  16. Better than better,白山EC2.0发布
  17. 磁盘阵列是什么,主要做什么用?
  18. dlib库 眨眼 张嘴
  19. slc mlc tlc nand
  20. ubuntu按装佳能c3520打印机驱动

热门文章

  1. ES6新语法 变量 、 服务器端js和浏览器端js的区别
  2. HTML5 文档头部
  3. JavaScript学习笔记(五)--深拷贝浅拷贝
  4. 奇偶链表的分割(C++)
  5. 顺序存储的二叉树的最近的公共祖先问题
  6. linux中运行ifconfig出现错误,不能sudo apt install net-tools,Linux不能联网
  7. 学习php开发步骤,学习php设计模式 php实现模板方法模式
  8. php 价格计算方法,PHP算法逻辑:如何计算购买量?
  9. wxpython中文教程_wxPython中文教程 简单入门加实例
  10. html单选框+点击取消选中,【前端JS】radio 可单选可点击取消选中