1. 程式人生 > >java:容器/集合(Map(HashMap,TreeMap))

java:容器/集合(Map(HashMap,TreeMap))

常用 接口 blog ava keyset 常用方法 system entryset 方法

HashMap:

*Map接口:采用是鍵值對的方式存放數據。無序
*常見的實現類:
*--HashMap:基於哈希表的 Map 接口的實現。
*常用的構造方法:
* HashMap()構造一個具有默認初始容量 (16) 和默認加載因子 (0.75) 的空 HashMap。
* HashMap(int initialCapacity) 構造一個帶指定初始容量和默認加載因子 (0.75) 的空 HashMap
*常用方法:
* put(K key, V value)在此映射中關聯指定值與指定鍵。
* get(Object key) 返回指定鍵所映射的值;如果對於該鍵來說,此映射不包含任何映射關系,則返回 null。
* size() 返回此映射中的鍵-值映射關系數。
* remove(Object key) 從此映射中移除指定鍵的映射關系(如果存在)。
* clear() 從此映射中移除所有映射關系。
* containsKey(Object key) 如果此映射包含對於指定鍵的映射關系,則返回 true。
* containsValue(Object value) 如果此映射將一個或多個鍵映射到指定值,則返回 true。
*----LinkedHashMap
*--Hashtable
*--TreeMap

import java.util.HashMap;
import java.util.Map;

public class TestHashMap {
    public static void main(String[] args) {
        Map<String,String> map = new HashMap<String,String>();
        //向容器中添加元素:以鍵值對的方式進行存放.
        map.put("jack", "成龍");
        map.put("jay", "周傑倫");
        map.put(
"eason", "陳奕迅");//添加元素 //取: // map.remove("eason");//通過key移除元素 System.out.println("是否包含eason:"+map.containsKey("eason")); System.out.println("是否包含成龍:"+map.containsValue("成龍")); System.out.println("容器中總共有"+map.size()+"個鍵值對元素"); String name = map.get("jack");//根據key獲取元素的值
System.out.println(name); String name2 = map.get("jay"); System.out.println(name2); } }

HashMap取值的兩種方法:

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

/**
 *Map的遍歷 
 *    Set<K> keySet() 返回此映射中所包含的鍵的 Set 視圖。 
 *  Set<Map.Entry<K,V>> entrySet() 返回此映射所包含的映射關系的 Set 視圖。 
 */
public class TestHashMap2 {
    public static void main(String[] args) {
        Map<String,String> map = new HashMap<String,String>();
        //向容器中添加元素:以鍵值對的方式進行存放.
        map.put("jack", "成龍");
        map.put("jay", "周傑倫");
        map.put("eason", "陳奕迅");//添加元素
        map.put("jack", "傑克");//鍵如果重復,將發生覆蓋
        System.out.println(map);
        //方式1:先獲取鍵的集合,通過鍵獲取值
        Set<String> keySet = map.keySet();
        for (String key : keySet) {
            String value = map.get(key);
            System.out.println(key+"----"+value);
        }
        System.out.println("-------------------------------");
        //方式2:獲取鍵值對的集合,然後從鍵值對獲取鍵和值。(推薦)
        //Entry<String,String>:對鍵和值進行泛型,Set<Entry<String,String>>對Set集合中Entry(鍵值對)進行泛型
        Set<Entry<String,String>> entrySet = map.entrySet();
        for (Entry<String, String> entry : entrySet) {
            String key = entry.getKey();//獲取鍵值對的鍵
            String value = entry.getValue();//獲取鍵值對中值
            System.out.println(key+"****"+value);
        }
    }
}

java:容器/集合(Map(HashMap,TreeMap))