Guava-table

提供:Dev Guides
移動先:案内検索

グアバ-テーブルインターフェイス

テーブルは、2つのキーを組み合わせて指定して単一の値を参照できる特別なマップを表します。 これは、マップのマップを作成することに似ています。

インターフェイス宣言

以下は com.google.common.collect.Table <R、C、V> インターフェースの宣言です-

@GwtCompatible
public interface Table<R,C,V>

インターフェースメソッド

Sr.No Method & Description
1

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

すべての行キー/列キー/値トリプレットのセットを返します。

2

void clear()

テーブルからすべてのマッピングを削除します。

3

Map<R,V> column(C columnKey)

指定された列キーを持つすべてのマッピングのビューを返します。

4

Set<C> columnKeySet()

テーブルに1つ以上の値を持つ列キーのセットを返します。

5

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

各列キーを、行キーから値への対応するマップに関連付けるビューを返します。

6

boolean contains(Object rowKey, Object columnKey)

指定した行キーと列キーを持つマッピングがテーブルに含まれている場合、trueを返します。

7

boolean containsColumn(Object columnKey)

指定した列のマッピングがテーブルに含まれている場合、trueを返します。

8

boolean containsRow(Object rowKey)

指定した行キーを持つマッピングがテーブルに含まれている場合、trueを返します。

9

boolean containsValue(Object value)

指定した値のマッピングがテーブルに含まれている場合、trueを返します。

10

boolean equals(Object obj)

指定されたオブジェクトとこのテーブルが等しいかどうかを比較します。

11

V get(Object rowKey, Object columnKey)

指定された行および列のキーに対応する値を返します。そのようなマッピングが存在しない場合はnullを返します。

12

int hashCode()

このテーブルのハッシュコードを返します。

13

boolean isEmpty()

テーブルにマッピングが含まれていない場合はtrueを返します。

14

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

指定された値を指定されたキーに関連付けます。

15

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

指定したテーブルからこのテーブルにすべてのマッピングをコピーします。

16

V remove(Object rowKey, Object columnKey)

指定されたキーに関連付けられているマッピングがあれば削除します。

17

Map<C,V> row(R rowKey)

指定された行キーを持つすべてのマッピングのビューを返します。

18

Set<R> rowKeySet()

テーブルに1つ以上の値を持つ行キーのセットを返します。

19

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

列キーから値への対応するマップに各行キーを関連付けるビューを返します。

20

int size()

テーブル内の行キー/列キー/値マッピングの数を返します。

21

Collection<V> values()

重複を含む可能性のあるすべての値のコレクションを返します。

テーブルインターフェイスの例

たとえば、* C:/> Guava。*で選択したエディターを使用して、次のJavaプログラムを作成します。

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 Employees
Emp Id: 102, Name: Ramesh
Emp Id: 101, Name: Mahesh
Emp Id: 103, Name: Suresh
Employers: IBM TCS Microsoft
Employer: IBM, Name: Ramesh