Guava提供的Map扩展操作代码示例

HashBasedTable(双键Map)

双键数据结构类型,底层由LinkedHashMap实现,官方定义可以将两个Key分别示意为rowKeycolumnKey,且提供了按rowKey获取或者按columnKey获取的API,注意无论是rowKey、columnKey还是value都不能为null值。

HashBasedTable实际上本身也是HashMap<R, HashMap<C,V>>的结构,因此,rowKey的查找性能要高于columnKey的查找。

public static void table() {
   
   
        HashBasedTable<String, String, String> table = HashBasedTable.create();
        // put操作
        table.put("研发部", "张三", "20");
        table.put("研发部", "李四", "21");
        table.put("产品部", "王五", "22");
        table.put("销售部", "赵六", "23");
        table.put("行政部", "小明", "24");

        // 按rowKey和columnKey获取value
        String value = table.get("研发部", "张三");
        // 输出结果:20
        System.out.println(value);

        // 按columnKey获取,rowKey和value就分别为Map中的Key和Value
        Map<String, String> columnKey = table.column("张三");
        // 输出结果:{研发部=20}
        System.out.println(columnKey);

        // 按rowKey获取,columnKey和value就分别为Map中的Key和Value
        Map<String, String> rowKey = table.row("研发部");
        // 输出结果:{张三=20, 李四=21}
        System.out.println(rowKey);

        // 以column为Key,转成原始的Map套Map的格式
        Map<String, Map<String, String>> toColumnMap = table.columnMap();
        // 输出结果:{张三={研发部=20}, 李四={研发部=21}, 王五={产品部=22}, 赵六={销售部=23}, 小明={行政部=24}}
        System.out.println(toColumnMap);

        // 以row为Key,转成原始的Map套Map的格式
        Map<String, Map<String, String>> toRowMap = table.rowMap();
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码拉松

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值