java api介面篇(二)上

來源:互聯網
上載者:User

Map介面

Map是一個將鍵映射為值的對象。一個映射不能包含重複鍵:每個鍵最多能映射一個值。Map介面如下所示:

public interface Map {
// Basic Operations
Object put(Object key, Object value);
Object get(Object key);
Object remove(Object key);
boolean containsKey(Object key);
boolean containsValue(Object value);
int size();
boolean isEmpty();

// Bulk Operations
void putAll(Map t);
void clear();

// Collection Views
public Set keySet();
public Collection values();
public Set entrySet();
// Interface for entrySet element
public interface Entry {
Object getKey();
Object getValue();
Object setValue(Object value);
}
}
 

JDK包含兩個新的通用Map實現,一個是HashMap, 它將它的項儲存在一個雜湊表中,是一種最好的實現;另一個是TreeMap, 它將它的項儲存在一個紅-黑樹上,它可保證迭代的順序。另外, Hashtable已被改進以實現Map。

與雜湊表的比較

如果你使用過Hashtable, 你應該已經熟悉了Map的一般風格(當然Map是一個介面,而Hashtable是一個具體的實現)。以下是它們的主要區別:

Map提供Collection視圖,作為Enumeration對象的替代直接支援迭代過程。Collection視圖 極大地提高了介面的可表達性,正如後續課程將講到的。

Map允許你在鍵、值或鍵-值對上進行迭代;Hashtable則不提供第三個選項。

Map提供了在迭代過程中刪除項的安全途徑;Hashtable則不能。

進一步講,Map修補了Hashtable介面上的某些小缺陷。Hashtable具有一個稱作contains的方法,如果Hashtable包含一個給定值,它將返回true。從它的名字上理解, 你可能期望如果Hashtable包含一個給定的key, 這個方法也會返回一個true ,因為鍵是一個Hashtable的主要存取機制。Map介面通過將這個方法重新命名為containsValue,從而消除了引起混亂的來源;同時也改善了介面的一致性: containsValue與containsKey可很好地對應並行。

基本操作

基本操作 (put, get, remove, containsKey, containsValue, s , a和isEmpty) 的功能與它們在Hashtable中的對等物非常相似。下面的簡單程式針對參數列表中的詞彙產生一個頻率表。頻率表將每個詞和它在參數列表中所出現的次數相映射。

import java.util.*;
public class Freq { private static final Integer ONE = new Integer(1);
public static void main(String args[]) {
Map m = new HashMap();
// Initialize frequency table from command line
for (int i=0; i$#@60; args.length; i++) {
Integer freq = (Integer) m.get(args[i]);
m.put(args[i], (freq==null ? ONE :
new Integer(freq.intValue() + 1)));
}

System.out.println(m.size()+" distinct words detected:");
System.out.println(m);
}
}
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.