代码编织梦想

Table接口

Table是Guava在jdk的基础上新增的一种新集合类型,是一个有序的键值对集合。可能通过行和列取出对应的值。而Table有可能是稀疏的,不是每个行列对都会有值。可以通过行(列)键值或取出一行(列)的数据,也可以同时使用,取出唯一的映射值。返回集合的方法是返回Tabale的中对象的引用,修改集合会修改表,修改表也会修改集合中的对象。所有函数操作都是可选的,如果所选的函数不可修改Table,则会抛出UnsupportedOperationException

Table接口的实现ArrayTable, ForwardingTable, HashBasedTable, ImmutableTable

ArrayTable

ArrayTable的行和列的长度在初始化后是固定不可变的,行与列的键值不可为Null。Table接口中的clear及remove方法也不可使用,否则会报错,不过可以用erase及eraseAll方法代替。ArrayTable比 HashBasedTable和TreeBasedTable更有效地利用内存,除非ArrayTable是稀疏的。

注意此实现并不是线程安全的

ForwardingTable

ForwardingTable是实现了Table接口的抽象类

HashBasedTable

HashBasedTable拥有Tabel接口的所有方法,通过column(c)columnKeySet()和columnMap()返回的视图是一个不支持remove()方法的迭代器(Iterator)

此实现中的所有列和行键值,以及对应的值也不可为空。通过行查询比通过列查询更高效。因为它的数据是存储在Map>这个结构中。理论上查询列的长度比查询行的长度会消耗更多的时间。

注意,此实现同样非线程安全。

ImmutableTable

ImmutableTable一经初始化,就不可以改变它里面的所有值,相当于只读。许多其他重要属性在ImmutableCollection

RowSortedTable接口

RowSortedTable是一个继承Table的接口,它的特别之处是表格中的行是有序的

RowSortedTable接口的实现TreeBasedTable

TreeBasedTable

TreeBasedTable是一个有序的表格,类型List,可以通过自身的comparator比较大小进行排序。当你构造此对象时,如果不为之先指定Comparator,则会使用默认的Comparator.

rowKeySet()方法返回一个SortedSet对象,rowMap()方法返回一个SortedMap对象,用来代替Set对象及Map对象。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_32945435/article/details/114362093

hashbasedtable-爱代码爱编程

OverviewPackageClassUseTreeDeprecatedIndexHelp Prev ClassNext Class FramesNo Frames All Classes Summary: Nested | Field | Constr | Method Detail: Fiel

guava之table_qunimdejiangyou的博客-爱代码爱编程

在guava库中还提供了一种二维表结构:Table。使用Table可以实现二维矩阵的数据结构,可以是稀溜矩阵。通常来说,当你想使用多个键做索引的时候,你可能会用类似Map(FirstName, Map(LastName, P

hashbasetable的学习笔记_qq_38767992的博客-爱代码爱编程

HashBasedTable<Integer, Integer, Model> countModel = HashBasedTable.create(); 使用: countModel.put(x,x,boj);调用put方法添加值;  public HashBasedTable<Integer, Integer, Model&

hashbasedtable用法实例_꧁༺娛༒樂༻꧂的博客-爱代码爱编程_hashbasetable

import com.google.common.collect.HashBasedTable; import com.google.common.collect.Table; import java.util.Map; i

java 哈希图对键排序_Java Collection Framework哈希图-爱代码爱编程

java 哈希图对键排序 Java HashMap class is an implementation of Map interface based on hash table. It stores elements in key & value pairs which is denoted as HashMap<Key, Value

java hashbasedtable_Guava学习笔记:Guava新集合-Table等-爱代码爱编程

Table 当我们需要多个索引的数据结构的时候,通常情况下,我们只能用这种丑陋的Map>来实现。为此Guava提供了一个新的集合类型-Table集合类型,来支持这种数据结构的使用场景。Table支持“row”和“column”,而且提供多种视图。 @Testpublic voidTableTest(){ Table aTable =Hash

java hashbasedtable_Guava类库学习--Table(双键的Map)-爱代码爱编程

Table是Guava提供的一个接口 Interface Table,由rowKey+columnKey+value组成 它有两个键,一个值,和一个n行三列的数据表类似,n行取决于Table对对象中存储了多少个数据 主要使用的方法有: 所有行数据:cellSet() 所有第一个key值:rowKeySet() 所有课程:columnKeySet

java hashbasedtable_HashBasedTable-爱代码爱编程

Table table = HashBasedTable.create(); table.put("0010", "i", 1); table.put("0010", "e", 2); table.put("0020", "c", 2); Set columnKeySet = table.columnKeySet(); Set> cel

hash table 的几点注意的地方-爱代码爱编程

影响hash Table design的3个factors: (1)hash function(散列函数) (2)Table size(散列的大小, 通常最开始是固定大小的) (3)collision handling scheme(发生冲突的时候的处理机制) 一个“good” hash function 应该具有如下几点属性: (1)re