guava的Table使用解析

给你一囗甜甜゛ 提交于 2019-12-01 02:56:17

一、Map<R,Map<C,V>>的缺点

  Java编程中是否还在为map的嵌套而烦恼,就算stream的兴起也无法解决剖解内层map的痛苦。

为此Google设计了table解决该问题,table的底层实现仍然是嵌套map,只是在此基础上提供了若干api,极大简化了用户的开发工作。

二、开发流程

  1,引入jar包

  <dependency>

  <groupId>com.google.guava</groupId>

  <artifactId>guava</artifactId>

  <version>20.0</version>

  <scope>compile</scope>

 </dependency>

2,使用方式

  Table<R,C,V> table = HashBasedTable.create();

  由泛型可以看出,table由双主键R,C共同决定,V是存储值

3,新增数据:

     table.put(R,C,V);

4,获取数据

    V v = table.get(R,C);

5,遍历数据

    Set<R> set = table.rowKeySet();

    Set<C> set = table.columnKeySet();

三、底层解析

  final Map<R,Map<C,V>> backingMap;

  可以看出底层代码仍然使用的是嵌套MAP结构

  例:

public V put(R rowKey, C columnKey, V value) {  return row(rowKey).put(columnKey, value);}

各个方法较为简单这里就不一一列举了,唯一注意的是行和列对应的值可能为空,需单独处理。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!