Java API —— Map接口

1、Map接口概述

        · 将键映射到值的对象
        · 一个映射不能包含重复的键
        · 每个键最多只能映射到一个值
 
2、Map接口和Collection接口的不同
       ·  Map是双列的;Collection是单列的
       ·  Map的键唯一;Collection的子体系Set是唯一的
       ·  Map集合的数据结构值针对键有效,跟值无关;Collection集合的数据结构是针对元素有效
 
3、Map集合的功能概述
  1)添加功能
    V put(K key,V value):添加元素(替换或修改功能)。
        如果键是第一次存储,就直接存储元素,返回null
        如果键不是第一次存在,就用新的值把以前的值替换掉,返回以前的值
  2)删除功能
    void clear():移除所有的键值对元素
    V remove(Object key):根据键删除键值对元素,并把值返回
  3)判断功能
    boolean containsKey(Object key):判断集合是否包含指定的键
    boolean containsValue(Object value):判断集合是否包含指定的值
    boolean isEmpty():判断集合是否为空
  4)获取功能
    Set<Map.Entry<K,V>> entrySet():???
    V get(Object key):根据键获取值
    Set<K> keySet():获取集合中所有键的集合
    Collection<V> values():获取集合中所有值的集合
  5)长度功能
    int size():返回集合中的键值对的对数
 
 例子1:
package mapdemos;
import java.util.HashMap;
import java.util.Map;
/**
 * Created by gao on 15-12-21.
 */
public class MapDemo {
    public static void main(String[] args) {
        // 创建集合对象
        Map<String, String> map = new HashMap<String, String>();
        // 添加元素
        // V put(K key,V value):添加元素
        map.put("A1","B1");
        map.put("A2","B2");
        map.put("A3","B3");
        map.put("A4","B4");
        // void clear():移除所有的键值对元素
        //map.clear(); // map:{}
        // V remove(Object key):根据键删除键值对元素,并把值返回
        //System.out.println("remove:"+map.remove("A3")); //remove:B3
        //System.out.println("remove:"+map.remove("A2")); //remove:B2
        // boolean containsKey(Object key):判断集合是否包含指定的键
        //System.out.println("containsKey:"+map.containsKey("A2")); //containsKey:true
        //System.out.println("containsKey:"+map.containsKey("A6")); //containsKey:false
        // boolean isEmpty():判断集合是否为空
        //System.out.println("isEmpty:"+map.isEmpty()); //isEmpty:false
        //int size():返回集合中的键值对的对数
        System.out.println("size:"+map.size()); //size:4
        // 输出集合名称
        System.out.println("map:" + map);//无序输出
    }
}

例子2:

package mapdemos;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
 * Created by gao on 15-12-21.
 */
/*
 * 获取功能:
 * V get(Object key):根据键获取值
 * Set<K> keySet():获取集合中所有键的集合
 * Collection<V> values():获取集合中所有值的集合
 */
public class MapDemo02 {
    public static void main(String[] args) {
        // 创建集合对象
        Map<String, String> map = new HashMap<String, String>();
        // 添加元素
        // V put(K key,V value):添加元素
        map.put("A1", "B1");
        map.put("A2", "B2");
        map.put("A3", "B3");
        map.put("A4", "B4");
        // V get(Object key):根据键获取值
        System.out.println("get:" + map.get("A3")); //get:B3
        System.out.println("get:" + map.get("A6")); //get:null
        System.out.println("--------------------------");
        // Set<K> keySet():获取集合中所有键的集合
        Set<String> set = map.keySet();
        for (String key : set) {
            System.out.println(key);
        }
        System.out.println("--------------------------");
        // Collection<V> values():获取集合中所有值的集合
        Collection<String> col = map.values();
        for(String value : col){
            System.out.println(value);
        }
    }
}
例子3:Map集合的遍历
    方式1:根据键找值
        · 获取所有键的集合
        · 遍历键的集合,获取到每一个键
        · 根据键找值
package mapdemos;
/**
 * Created by gao on 15-12-21.
 */
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
 * Map集合的遍历。
 * A:获取所有的键
 * B:遍历键的集合,获取得到每一个键
 * C:根据键去找值
 */
public class MapDemo03 {
    public static void main(String[] args) {
        // 创建集合对象
        Map<String, String> map = new HashMap<String, String>();
        // 添加元素
        // V put(K key,V value):添加元素
        map.put("A1", "B1");
        map.put("A2", "B2");
        map.put("A3", "B3");
        map.put("A4", "B4");
        // 遍历
        // 获取所有的键
        Set<String> set = map.keySet();
        // 遍历键的集合,获取得到每一个键
        for (String key : set) {
            // 根据键去找值
            String value = map.get(key);
            System.out.println(key + "---" + value);
        }
    }
}
输出结果:
A2---B2
A1---B1
A4---B4
A3---B3
例子4:Map集合的遍历
    方式2:根据键值对对象找键和值
        · 获取所有键值对对象的集合
        · 遍历键值对对象的集合,获取到每一个键值对对象
        · 根据键值对对象找键和值
package mapdemos;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
 * Created by gao on 15-12-21.
 */
/**
 * Map集合的遍历:
 * A:获取所有键值对对象的集合
 * B:遍历键值对对象的集合,得到每一个键值对对象
 * C:根据键值对对象获取键和值
 */
public class MapDemo04 {
    public static void main(String[] args) {
        // 创建集合对象
        Map<String, String> map = new HashMap<String, String>();
        // 添加元素
        // V put(K key,V value):添加元素
        map.put("A1", "B1");
        map.put("A2", "B2");
        map.put("A3", "B3");
        map.put("A4", "B4");
        // 获取所有键值对对象的集合
        Set<Map.Entry<String, String>> set = map.entrySet();
        // 遍历键值对对象的集合,得到每一个键值对对象
        for (Map.Entry<String, String> me : set) {
            // 根据键值对对象获取键和值
            String key = me.getKey();
            String value = me.getValue();
            System.out.println(key + "---" + value);
        }
    }
}
输出结果:
A2---B2
A1---B1
A4---B4
A3---B3

4、Map集合遍历的两种方式比较图解

 
 
 
 
posted @ 2015-12-21 18:13  我是一名老菜鸟  阅读(1423)  评论(0编辑  收藏  举报