Guava - Table Interface



Table represents a special map where two keys can be specified in combined fashion to refer to a single value. It is similar to creating a map of maps.

Interface Declaration

Following is the declaration for com.google.common.collect.Table<R,C,V> interface −

@GwtCompatible public interface Table<R,C,V>
Sr.No Method & Description
1

Set<Table.Cell<R,C,V>> cellSet()

Returns a set of all row key/column key/value triplets.

2

void clear()

Removes all mappings from the table.

3

Map<R,V> column(C columnKey)

Returns a view of all mappings that have the given column key.

4

Set<C> columnKeySet()

Returns a set of column keys that have one or more values in the table.

5

Map<C,Map<R,V>> columnMap()

Returns a view that associates each column key with the corresponding map from row keys to values.

6

boolean contains(Object rowKey, Object columnKey)

Returns true if the table contains a mapping with the specified row and column keys.

7

boolean containsColumn(Object columnKey)

Returns true if the table contains a mapping with the specified column.

8

boolean containsRow(Object rowKey)

Returns true if the table contains a mapping with the specified row key.

9

boolean containsValue(Object value)

Returns true if the table contains a mapping with the specified value.

10

boolean equals(Object obj)

Compares the specified object with this table for equality.

11

V get(Object rowKey, Object columnKey)

Returns the value corresponding to the given row and column keys, or null if no such mapping exists.

12

int hashCode()

Returns the hash code for this table.

13

boolean isEmpty()

Returns true if the table contains no mappings.

14

V put(R rowKey, C columnKey, V value)

Associates the specified value with the specified keys.

15

void putAll(Table<? extends R,? extends C,? extends V> table)

Copies all mappings from the specified table to this table.

16

V remove(Object rowKey, Object columnKey)

Removes the mapping, if any, associated with the given keys.

17

Map<C,V> row(R rowKey)

Returns a view of all mappings that have the given row key.

18

Set<R> rowKeySet()

Returns a set of row keys that have one or more values in the table.

19

Map<R,Map<C,V>> rowMap()

Returns a view that associates each row key with the corresponding map from column keys to values.

20

int size()

Returns the number of row key / column key / value mappings in the table.

21

Collection<V> values()

Returns a collection of all values, which may contain duplicates.

Example - Creating a Table

GuavaTester.java

package com.tutorialspoint; 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()); } } }

Output

Run the GuavaTester and verify the output.

List of IBM Employees
Emp Id: 102, Name: Ramesh
Emp Id: 101, Name: Mahesh
Emp Id: 103, Name: Suresh

Example - Getting Unique Keys of a Table

GuavaTester.java

package com.tutorialspoint; 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 all the unique keys of the table Set<String> employers = employeeTable.rowKeySet(); System.out.print("Employers: "); for(String employer: employers) { System.out.print(employer + " "); } } }

Output

Run the GuavaTester and verify the output.

Employers: IBM Microsoft TCS 

Example - Getting a Map for a Key from a Table

GuavaTester.java

package com.tutorialspoint; 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 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()); } } }

Output

Run the GuavaTester and verify the output.

Employer: IBM, Name: Ramesh
Advertisements