Map集合的概述

Map集合的概述


1、Map集合

(1)通过查看API可知,Map是一个存储键值对元素的集合。

(2)特点:将键映射到值的对象。一个映射不能包含重复的键,每个键最多只能映射到一个值。

(3)Map集合和Collection集合的区别:

  • Map集合存储的元素是成对出现的(键值对)。MAP集合的键是唯一的,值是可重复的。
  • Collection集合存储的元素是单独出现的。Collection集合的儿子Set是唯一的,List是可重复的。

(4)注意:

  • Map集合的数据结构只针对键有效,跟值无关。
  • Collection集合的数据结构是针对元素有效。

2、MAP集合的功能概述

 * 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():判断集合是否为空

           boolean equals(Object o):比较指定的对象与此映射是否相等。如果给定的对象也是一个映射,

                                                       并且这两个对象表示相同的映射关系,则返回true。

 * 4:获取功能
 *         Set<Map.Entry<K,V>> entrySet():  ???
 *         V get(Object key):根据键获取值
 *         Set<K> keySet():获取集合中所有键的集合
 *         Collection<V> values():获取集合中所有值的集合

 * 5:长度功能
 *         int size():返回集合中的键值对的对数


3、Map集合的基本方法测试

import java.util.HashMap;
import java.util.Map;
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);
	}
}

4、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);
		}
	}
}


5、(1)Map集合的遍历方式一(掌握)

package cn.itcast_01;

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

/*
 * Map集合的遍历。
 * Map -- 夫妻对
 * 思路:
 * 		A:把所有的丈夫给集中起来。
 * 		B:遍历丈夫的集合,获取得到每一个丈夫。
 * 		C:让丈夫去找自己的妻子。
 * 
 * 转换:
 * 		A:获取所有的键。
 * 		B:遍历键的集合,获取得到每一个键。
 * 		C:根据键去找值。
 */
public class MapDemo3 {
	public static void main(String[] args) {
		// 创建集合对象
		Map<String, String> map = new HashMap<String, String>();

		// 创建元素并添加到集合
		map.put("杨过", "小龙女");
		map.put("郭靖", "黄蓉");
		map.put("杨康", "穆念慈");
		map.put("陈玄风", "梅超风");

		// 遍历方法!!!
		// 获取所有的键
		Set<String> set = map.keySet();
		// 遍历键的集合,获取得到每一个键
		for (String key : set) {
			// 根据键去找值
			String value = map.get(key);
			System.out.println(key + "---" + value);
		}
	}
}


5、(2)Map集合的遍历方式二(最好也掌握)

package cn.itcast_01;

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

/*
 * Map集合的遍历。
 * Map -- 夫妻对
 * 
 * 思路:
 * 		A:获取所有结婚证的集合
 * 		B:遍历结婚证的集合,得到每一个结婚证
 * 		C:根据结婚证获取丈夫和妻子
 * 
 * 转换:
 * 		A:获取所有键值对对象的集合
 * 		B:遍历键值对对象的集合,得到每一个键值对对象
 * 		C:根据键值对对象获取键和值
 * 
 * 这里面最麻烦的就是键值对对象如何表示呢?
 * 看看我们开始的一个方法:
 * 		Set<Map.Entry<K,V>> entrySet():返回的是键值对对象的集合!!!
 */
public class MapDemo4 {
	public static void main(String[] args) {
		// 创建集合对象
		Map<String, String> map = new HashMap<String, String>();

		// 创建元素并添加到集合
		map.put("杨过", "小龙女");
		map.put("郭靖", "黄蓉");
		map.put("杨康", "穆念慈");
		map.put("陈玄风", "梅超风");

		// 获取所有键值对对象的集合
		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);
		}
	}
}

5、(3)两种遍历方式的图解(掌握!)







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值