guava的Table使用解析


一、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);}

各個方法較為簡單這里就不一一列舉了,唯一注意的是行和列對應的值可能為空,需單獨處理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM