集合框架-Map集合功能概述

ZHOU_VIP發表於2017-04-29

1:Map(掌握)

(1)將鍵對映到值的物件。一個對映不能包含重複的鍵;每個鍵最多隻能對映到一個值。

(2)Map和Collection的區別?

    A:Map 儲存的是鍵值對形式的元素,鍵唯一,值可以重複。夫妻對

    B:Collection 儲存的是單獨出現的元素,子介面Set元素唯一,子介面List元素可重複。光棍

(3)Map介面功能概述(自己補齊)

    A:新增功能

    B:刪除功能

    C:判斷功能

    D:獲取功能

    E:長度功能


package cn.itcast_01;

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

/*
 * 作為學生來說,是根據學號來區分不同的學生的,那麼假設我現在已經知道了學生的學號,我要根據學號去獲取學生姓名,請問怎麼做呢?
 * 如果採用前面講解過的集合,我們只能把學號和學生姓名作為一個物件的成員,然後儲存整個物件,將來遍歷的時候,判斷,獲取對應的名稱。
 * 但是呢,如果我都能把學生姓名拿出來了,我還需要根據編號去找嗎?
 * 針對我們目前的這種需求:僅僅知道學號,就想知道學生姓名的情況,Java就提供了一種新的集合 Map。
 * 通過檢視API,我們知道Map集合的一個最大的特點,就是它可以儲存鍵值對的元素。這個時候儲存我們上面的需求,就可以這樣做
 * 		學號1		姓名1
 * 		學號2 	    姓名2
 * 		學號3		姓名3
 * 		學號2(不行) 姓名4
 * 		學號4       姓名4
 * Map集合的特點:
 * 		將鍵對映到值的物件。一個對映不能包含重複的鍵;每個鍵最多隻能對映到一個值。 
 * 
 * Map集合和Collection集合的區別?
 * 		Map集合儲存元素是成對出現的,Map集合的鍵是唯一的,值是可重複的。可以把這個理解為:夫妻對
 * 		Collection集合儲存元素是單獨出現的,Collection的兒子Set是唯一的,List是可重複的。可以把這個理解為:光棍(11.11)
 * 
 * 注意:
 * 		Map集合的資料結構值針對鍵有效,跟值無關	
 * 			HashMap,TreeMap等會講。
 *		Collection集合的資料結構是針對元素有效
 * 
 * Map集合的功能概述:
 * 1:新增功能
 * 		V put(K key,V value):新增元素。這個其實還有另一個功能? 修改替換功能,第二次put,該鍵存在就把以前的值替換掉
 * 			如果鍵是第一次儲存,就直接儲存元素,返回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():獲取集合中所有的鍵值物件的集合(遍歷map的第二種方式)
 * 		V get(Object key):根據鍵獲取值
 * 		Set<K> keySet():獲取集合中所有鍵的集合(遍歷map的第一種方式)
 * 		Collection<V> values():獲取集合中所有值的集合
 * 5:長度功能
 * 		int size():返回集合中的鍵值對的對數
 */
public class MapDemo {
	public static void main(String[] args) {
		// 建立集合物件
		Map<String, String> map = new HashMap<String, String>();

		// 新增元素
		// V put(K key,V value):新增元素。這個其實還有另一個功能?先不告訴你,等會講
		// System.out.println("put:" + map.put("文章", "馬伊俐"));
		// System.out.println("put:" + map.put("文章", "姚笛"));

		map.put("鄧超", "孫儷");
		map.put("黃曉明", "楊穎");
		map.put("周杰倫", "蔡依林");
		map.put("劉愷威", "楊冪");

		// void clear():移除所有的鍵值對元素
		// map.clear();

		// V remove(Object key):根據鍵刪除鍵值對元素,並把值返回
		// System.out.println("remove:" + map.remove("黃曉明"));
		// System.out.println("remove:" + map.remove("黃曉波"));

		// boolean containsKey(Object key):判斷集合是否包含指定的鍵
		// System.out.println("containsKey:" + map.containsKey("黃曉明"));
		// System.out.println("containsKey:" + map.containsKey("黃曉波"));

		// boolean isEmpty():判斷集合是否為空
		// System.out.println("isEmpty:"+map.isEmpty());
		
		//int size():返回集合中的鍵值對的對數
		System.out.println("size:"+map.size());

		// 輸出集合名稱
		System.out.println("map:" + map);
	}
}


package cn.itcast_01;

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

/*
 * 獲取功能:
 * V get(Object key):根據鍵獲取值
 * Set<K> keySet():獲取集合中所有鍵的集合
 * Collection<V> values():獲取集合中所有值的集合
 */
public class MapDemo2 {
	public static void main(String[] args) {
		// 建立集合物件
		Map<String, String> map = new HashMap<String, String>();

		// 建立元素並新增元素
		map.put("鄧超", "孫儷");
		map.put("黃曉明", "楊穎");
		map.put("周杰倫", "蔡依林");
		map.put("劉愷威", "楊冪");

		// V get(Object key):根據鍵獲取值
		System.out.println("get:" + map.get("周杰倫"));// 返回蔡依林
		System.out.println("get:" + map.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> con = map.values();
		for (String value : con) {
			System.out.println(value);蔡依林、楊冪、孫儷、楊穎
		}
	}
}



相關文章