Guava - Useful Classes
- Guava - Optional Class
- Guava - Preconditions Class
- Guava - Ordering Class
- Guava - Objects Class
- Guava - Range Class
- Guava - Throwables Class
- Guava - LoadingCache Interface
Guava - Collection Utilities
- Guava - Collections Utilities
- Guava - MultiSet Interface
- Guava - MultiMap Interface
- Guava - BiMap Interface
- Guava - Table Interface
Guava - String Utilities
- Guava - String Utilities
- Guava - Joiner class
- Guava - Splitter
- Guava - CharMatcher
- Guava - CaseFormat
Guava - Primitive Utilities
- Guava - Primitive Utilities
- Guava - Bytes
- Guava - Shorts
- Guava - Ints
- Guava - Longs
- Guava - Floats
- Guava - Doubles
- Guava - Chars
- Guava - Booleans
Guava - Math Utilities
Guava - Useful Resources
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