Interface Table<R,C,V>

Type Parameters:
R - 行键类型
C - 列键类型
V - 值类型
All Superinterfaces:
Iterable<Table.Cell<R,C,V>>
All Known Implementing Classes:
AbstractTable, RowKeyTable

public interface Table<R,C,V> extends Iterable<Table.Cell<R,C,V>>
表格数据结构定义 此结构类似于Guava的Table接口,使用两个键映射到一个值,类似于表格结构。
Since:
Java 17+
Author:
Kimi Liu
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static interface 
    单元格,用于表示一个单元格的行、列和值
  • Method Summary

    Modifier and Type
    Method
    Description
    所有单元格集合
    void
    清空表格
    default List<C>
    返回所有列的key,列的key如果实现Map是可重复key,则返回对应不去重的List。
    default Set<C>
    返回所有列的key,列的key不可重复
    Map<C,Map<R,V>>
    返回列-行对应的map
    default boolean
    contains(R rowKey, C columnKey)
    是否包含指定行列的映射 行和列任意一个不存在都会返回false,如果行和列都存在,值为null,也会返回true
    default boolean
    containsColumn(C columnKey)
    列是否存在
    default boolean
    containsRow(R rowKey)
    行是否存在
    default boolean
    指定值是否存在
    default void
    forEach(SerConsumer3<? super R,? super C,? super V> consumer)
    遍历表格的单元格,处理值
    default V
    get(R rowKey, C columnKey)
    获取指定值
    default Map<R,V>
    getColumn(C columnKey)
    获取列
    default Map<C,V>
    getRow(R rowKey)
    获取行
    boolean
    表格是否为空
    put(R rowKey, C columnKey, V value)
    为表格指定行列赋值,如果不存在,创建之,存在则替换之,返回原值
    default void
    putAll(Table<? extends R,? extends C,? extends V> table)
    批量加入
    remove(R rowKey, C columnKey)
    移除指定值
    default Set<R>
    返回所有行的key,行的key不可重复
    Map<R,Map<C,V>>
    返回行列对应的Map
    default int
    表格大小,一般为单元格的个数
    所有行列值的集合

    Methods inherited from interface java.lang.Iterable

    forEach, iterator, spliterator
  • Method Details

    • contains

      default boolean contains(R rowKey, C columnKey)
      是否包含指定行列的映射 行和列任意一个不存在都会返回false,如果行和列都存在,值为null,也会返回true
      Parameters:
      rowKey - 行键
      columnKey - 列键
      Returns:
      是否包含映射
    • containsRow

      default boolean containsRow(R rowKey)
      行是否存在
      Parameters:
      rowKey - 行键
      Returns:
      行是否存在
    • getRow

      default Map<C,V> getRow(R rowKey)
      获取行
      Parameters:
      rowKey - 行键
      Returns:
      行映射,返回的键为列键,值为表格的值
    • rowKeySet

      default Set<R> rowKeySet()
      返回所有行的key,行的key不可重复
      Returns:
      行键
    • rowMap

      Map<R,Map<C,V>> rowMap()
      返回行列对应的Map
      Returns:
      map,键为行键,值为列和值的对应map
    • containsColumn

      default boolean containsColumn(C columnKey)
      列是否存在
      Parameters:
      columnKey - 列键
      Returns:
      列是否存在
    • getColumn

      default Map<R,V> getColumn(C columnKey)
      获取列
      Parameters:
      columnKey - 列键
      Returns:
      列映射,返回的键为行键,值为表格的值
    • columnKeySet

      default Set<C> columnKeySet()
      返回所有列的key,列的key不可重复
      Returns:
      列set
    • columnKeys

      default List<C> columnKeys()
      返回所有列的key,列的key如果实现Map是可重复key,则返回对应不去重的List。
      Returns:
      列set
    • columnMap

      Map<C,Map<R,V>> columnMap()
      返回列-行对应的map
      Returns:
      map,键为列键,值为行和值的对应map
    • containsValue

      default boolean containsValue(V value)
      指定值是否存在
      Parameters:
      value - 值
      Returns:
    • get

      default V get(R rowKey, C columnKey)
      获取指定值
      Parameters:
      rowKey - 行键
      columnKey - 列键
      Returns:
      值,如果值不存在,返回null
    • values

      Collection<V> values()
      所有行列值的集合
      Returns:
      值的集合
    • cellSet

      Set<Table.Cell<R,C,V>> cellSet()
      所有单元格集合
      Returns:
      单元格集合
    • put

      V put(R rowKey, C columnKey, V value)
      为表格指定行列赋值,如果不存在,创建之,存在则替换之,返回原值
      Parameters:
      rowKey - 行键
      columnKey - 列键
      value - 值
      Returns:
      原值,不存在返回null
    • putAll

      default void putAll(Table<? extends R,? extends C,? extends V> table)
      批量加入
      Parameters:
      table - 其他table
    • remove

      V remove(R rowKey, C columnKey)
      移除指定值
      Parameters:
      rowKey - 行键
      columnKey - 列键
      Returns:
      移除的值,如果值不存在,返回null
    • isEmpty

      boolean isEmpty()
      表格是否为空
      Returns:
      是否为空
    • size

      default int size()
      表格大小,一般为单元格的个数
      Returns:
      表格大小
    • clear

      void clear()
      清空表格
    • forEach

      default void forEach(SerConsumer3<? super R,? super C,? super V> consumer)
      遍历表格的单元格,处理值
      Parameters:
      consumer - 单元格值处理器