在Java編程中,Map和Table是兩個(gè)非常重要的數(shù)據(jù)結(jié)構(gòu)。它們都是用于存儲(chǔ)鍵值對(duì)的容器。但是,它們之間有很多的不同之處。下面我們來(lái)分別介紹Map和Table。
Map
Map<K,V> map = new HashMap<>(); map.put("key1", "value1"); map.put("key2", "value2"); map.put("key3", "value3");
在上面的代碼中,我們創(chuàng)建了一個(gè)HashMap類型的Map實(shí)例。HashMap是Java中比較常用的Map實(shí)現(xiàn)類之一。然后我們使用put()方法向Map中添加了三個(gè)鍵值對(duì)。其中,鍵是字符串類型,值是任意類型。
Map中的key是唯一的,如果我們往已有的key中添加新的value,那么原有的value會(huì)被覆蓋。我們可以使用get()方法獲取Map中某個(gè)key對(duì)應(yīng)的value。
String value1 = map.get("key1"); System.out.println(value1); // 輸出: value1
Table
Table<String, String, Integer> table = HashBasedTable.create(); table.put("row1", "col1", 1); table.put("row1", "col2", 2); table.put("row2", "col1", 3); table.put("row2", "col2", 4);
在上面的代碼中,我們創(chuàng)建了一個(gè)HashBasedTable類型的Table實(shí)例。HashBasedTable也是Google Guava庫(kù)中的一個(gè)Map實(shí)現(xiàn)類。我們使用put()方法向Table添加了四個(gè)元素。每個(gè)元素都是由一個(gè)row key,一個(gè)column key和一個(gè)value組成。
Table中的row key和column key必須都是唯一的,如果我們往已有的(row key, column key)中添加新的value,那么原有的value會(huì)被覆蓋。我們可以使用get()方法獲取Table中某個(gè)(row key, column key)對(duì)應(yīng)的value。
Integer value = table.get("row1", "col2"); System.out.println(value); // 輸出: 2
由于Table中的元素是由(row key, column key, value)組成的三元組,因此Table比Map多了一個(gè)維度。Table可以用于存儲(chǔ)類似二維表格的數(shù)據(jù)。