• 【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做例子了解下使用过程

    --定义:

    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
  • 相关阅读:
    matlab的两种函数简单使用介绍
    有关水晶易表的使用
    有关navicat11版本的破解
    关于配置javaee过程中的问题
    svn在服务器配置安装过程中的问题
    数据挖掘一
    javaee版eclipse导包出现未找到类问题
    git常用命名行总结
    学习kafka的基本信息总结
    JQuery之事件冒泡
  • 原文地址:https://www.cnblogs.com/xiaoka/p/2139805.html
Copyright © 2020-2023  润新知