Guava Table接口

来源:这里教程网 时间:2026-02-17 21:39:18 作者:

Guava Table接口

Table代表了一个特殊的映射,其中可以以联合方式指定两个键来引用单个值。它类似于创建一个映射的映射。

接口声明

以下是com.google.common.collect.Table<R,C,V>接口的声明−

@GwtCompatiblepublic interface Table<R,C,V>

接口方法

序号方法与描述
1Set <Table.Cell<R,C,V>> cellSet() 返回包含所有行键、列键和值的集合。
2void clear() 从表中移除所有映射。
3Map <R,V> column(C columnKey) 返回具有给定列键的所有映射的视图。
4Set <C> columnKeySet() 返回在表中具有一个或多个值的列键的集合。
5Map <C,Map<R,V>> columnMap() 返回将每个列键与相应的行键到值的映射关系关联起来的视图。
6boolean contains(Object rowKey, Object columnKey) 如果表包含具有指定行和列键的映射,则返回true。
7boolean containsColumn(Object columnKey) 如果表包含具有指定列的映射,则返回true。
8boolean containsRow(Object rowKey) 如果表包含具有指定行键的映射,则返回true。
9boolean containsValue(Object value) 如果表包含具有指定值的映射,则返回true。
10boolean equals(Object obj) 将指定的对象与该表进行比较,若相等则返回true。
11V get(Object rowKey, Object columnKey) 返回给定行和列键对应的值,如果没有这样的映射存在,则返回null。
12int hashCode() 返回此表的哈希码。
13boolean isEmpty() 如果表中不包含映射,则返回true。
14V put(R rowKey, C columnKey, V value) 将指定的值与指定的键关联起来。
15void putAll(Table <? extends R,? extends C,? extends V> table) 将指定表中的所有映射复制到此表中。
16V remove(Object rowKey, Object columnKey) 删除与给定键相关联的映射,如果存在的话。
17Map <C,V> row(R rowKey) 返回具有给定行键的所有映射的视图。
18Set <R> rowKeySet() 返回在表中具有一个或多个值的行键的集合。
19Map <R,Map<C,V>> rowMap() 返回将每个行键与相应的列键和值的映射关联起来的视图。
20int size() 返回表中行键/列键/值映射的数量。
21Collection <V> values() 返回包含所有值的集合,可能包含重复项。

Table接口的示例

使用您选择的任何编辑器创建以下Java程序,例如 C:/ >guava

GuavaTester.java

import java.util.Map;import java.util.Set;import com.google.common.collect.HashBasedTable;import com.google.common.collect.Table;public class GuavaTester {   public static void main(String args[]) {      //Table<R,C,V> == Map<R,Map<C,V>>      /*      *  Company: IBM, Microsoft, TCS      *  IBM        -> {101:Mahesh, 102:Ramesh, 103:Suresh}      *  Microsoft  -> {101:Sohan, 102:Mohan, 103:Rohan }       *  TCS        -> {101:Ram, 102: Shyam, 103: Sunil }       *       * */      //create a table      Table<String, String, String> employeeTable = HashBasedTable.create();      //initialize the table with employee details      employeeTable.put("IBM", "101","Mahesh");      employeeTable.put("IBM", "102","Ramesh");      employeeTable.put("IBM", "103","Suresh");      employeeTable.put("Microsoft", "111","Sohan");      employeeTable.put("Microsoft", "112","Mohan");      employeeTable.put("Microsoft", "113","Rohan");      employeeTable.put("TCS", "121","Ram");      employeeTable.put("TCS", "122","Shyam");      employeeTable.put("TCS", "123","Sunil");      //get Map corresponding to IBM      Map<String,String> ibmEmployees =  employeeTable.row("IBM");      System.out.println("List of IBM Employees");      for(Map.Entry<String, String> entry : ibmEmployees.entrySet()) {         System.out.println("Emp Id: " + entry.getKey() + ", Name: " + entry.getValue());      }      //get all the unique keys of the table      Set<String> employers = employeeTable.rowKeySet();      System.out.print("Employers: ");      for(String employer: employers) {         System.out.print(employer + " ");      }      System.out.println();      //get a Map corresponding to 102      Map<String,String> EmployerMap =  employeeTable.column("102");      for(Map.Entry<String, String> entry : EmployerMap.entrySet()) {         System.out.println("Employer: " + entry.getKey() + ", Name: " + entry.getValue());      }        }    }

验证结果

使用 javac 编译器来编译类,步骤如下:

C:\Guava>javac GuavaTester.java

现在运行GuavaTester查看结果。

C:\Guava>java GuavaTester

看结果。

List of IBM EmployeesEmp Id: 102, Name: RameshEmp Id: 101, Name: MaheshEmp Id: 103, Name: SureshEmployers: IBM TCS Microsoft Employer: IBM, Name: Ramesh

相关推荐