【Java 学习笔记】 HashMultimap(guava)
2015-07-01 12:20
441 查看
文章转自:/article/6037720.html
因为项目需要,又开始写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做例子了解下使用过程
--定义:
--遍历:可以使用遍历器进行遍历,也可以获取其Key值进行遍历
使用遍历器遍历:
使用Key值遍历,key值可以得到一个全部键值的MultiSet或者是一个没有重复键值的KeySet,这边使用没有重复键值的做例子
因为项目需要,又开始写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做例子了解下使用过程
--定义:
HashMultimap<Integer,Integer> doc_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.Entry<Integer, Integer> entry = (Map.Entry<Integer, Integer>)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<Integer> keys = map.keySet(); for(int key:keys) { String result = String.format("%d:", key); Set<Integer> 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
相关文章推荐
- Spring的编程式事务与声明式事务区别
- JAVA中String类
- java易混淆概念之类变量、成员变量、局部变量
- 1、Spring Data JPA 入门
- 深入JAVA核心 JAVA内存分配原理精讲
- java 使用C中的struct
- java中的对象、接口、类、方法等概念浅析for(菜鸟)
- eclipse离线安装插件
- 《JAVA程序设计》日志三
- 《Java课程实习》日志(周三)
- 用Spring MVC和Freemarker实现导出PDF
- Java导出数据到txt文件
- Java 基础知识点滴(1)
- 《Java课程实习》日志(周三)
- java
- Java - How Class is loaded and initialized
- java静态内部类
- Spring2.5学习4.1_AOP
- java 集合(list、set、map)的特点
- java集合总结(转载)