Map集合概述和范例

Map集合

1.Map集合的概述和使用

  1. Map集合概述
    1. Interface Map<k,V> k:键的类型;v:值的类型
    2. 将键映射到值的对象:不能包含重复的键,每个键可以映射到最多一个值。(如果存进两个一样的键的元素,后面的相同键的元素会把前面的值给覆盖掉)。
    3. K允许存储null键的,只能存储一个null键。

2.Map集合的基本功能

方法名说明
v **put(**K key,V value)添加集合
v remove(Object key)根据键删除键值对元素
void clear()移除所有键值对元素
boolean containsKey(Object key)判断集合是否包含指定的键
boolean containsValue(Object value)判断集合是否包含指定的值
boolean isEmpty()判断集合是否为空
int size()集合的长度
V get(Object key)根据建获取值
Set keySet()获取所有键的集合
Collection values()获取所有值的集合
Set<Map.Entry<k,v>> entrySet()获取所有键值对对象的集合

Map方法的应用

package MapDemo01;

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

public class Map_Test {
    public static void main(String[] args) {
        Map<String,String> map = new HashMap();
        //添加方法
        map.put("蔡三金","小黑");
        map.put("任国强","小花");
        map.put("李帅帅","小白");
        //添加方法还可以变成修改该方法。因为当键的值一样时后面的会把前面的给覆盖掉
        map.put("蔡三金","黑炭");
        System.out.println(map);
        System.out.println("~~~~~~~~~~");
        //删除方法
        String name = map.remove("李帅帅");
        System.out.println(name);
        System.out.println(map);
        System.out.println("~~~~~~~~~~~~");
        //删除所有的元素
//        map.clear();
//        System.out.println(map);

        //判断该键是否存在,若存在则返true,否则返回false
        System.out.println(map.containsKey("蔡三金"));
        //判断值是否存在
        System.out.println(map.containsValue("黑炭"));
        //判断集合是否为空
        System.out.println(map.isEmpty());
        //判断集合的长度
        System.out.println(map.size());

    }
}

3.Map集合的获取功能

方法名说明
V get(Object key)根据键值获得对应的值
Set keySet或的所有的键值存储到Set集合中
Collection values()获取所有的值
Set<Map.Entry<K,V>> entrySet获取所有键值对对象的集合

案例:

public class MapDemo02 {
	    public static void main(String[] args) {
	        // HashSet<String> set = new HashSet<>();
	        // set.add("");

	        HashMap<String, String> map = new HashMap<>();
	        map.put("001", "希");
	        map.put("002", "泽");
	        map.put("003", "空儿");

	        /*
	         * V get(Object key)              : 根据键获取值
	         * Set<K> keySet()                : 获取所有键的集合
	         * Collection<V> values()         : 获取所有值的集合
	         */

	        String value = map.get("003");
	        System.out.println(value);

	        // Set<K> keySet(): map集合的第一种遍历方式
	        // 由 K 找 V
	        // 获取所有的丈夫(Key),通过丈夫获取(get())对应的妻(Value) 妾
	        Set<String> set = map.keySet();
	        for (String key : set) {
	            String v = map.get(key);
	            System.out.println(key + "=" + v);
	        }

	        System.out.println("~~~~~~~~~~~~~~~~~~");

	        // Collection<V> values() : 获取所有值的集合
	        Collection<String> values = map.values();
	        for (String s : values) {
	            System.out.println(s);
	        }

	    }
	}

5. Map遍历方式一之键找值的方式

A:键找值思路:
* 使用keySet方法,获取所有的key,存储到Set集合(召集了所有的丈夫)
* 使用get方法获取Value(根据丈夫(K) 找 妻子(V))
* 使用迭代器或增强for循环进行遍历

  • B:案例演示
HashMap<String, String> map = new HashMap<>();
	        map.put("001", "希");
	        map.put("002", "泽");
	        map.put("003", "空儿");

	         // Set<K> keySet(): map集合的第一种遍历方式
	        // 由 K 找 V
	        // 获取所有的丈夫(Key),通过丈夫获取(get())对应的妻(Value) 妾
	        Set<String> set = map.keySet();
	        for (String key : set) {
	            String v = map.get(key);
	            System.out.println(key + "=" + v);
	        }

6. Map遍历方式二之Entry的方式

A:根据Map.Entry接口,把Map集合中的键对当成对象存储到Set集合中

B:

  1. public K getKey() : 获取键
  2. public V getValue() : 获取值
public class MapDemo03 {
	    public static void main(String[] args) {
	        HashMap<String, String> map = new HashMap<>();
	        map.put("001", "希");
	        map.put("002", "泽");
	        map.put("003", "空儿");

	        // map集合的第二种遍历方式
	        Set<Map.Entry<String, String>> entries = map.entrySet();
	        // 遍历set集合 获取每一个Entry 结婚证对象
	        for (Map.Entry<String, String> entry : entries) {
	            // 通过getKey和getValue 来获取丈夫和妻子
	            String key = entry.getKey();
	            String value = entry.getValue();
	            System.out.println(key +"=" + value);
	        }

	    }
	}

7. Map集合的案例

/* HashMap集合练习之键是String值是Student
    * 案例需求
        创建一个HashMap集合,键是学号(String),值是学生对象(Student)。存储三个键值对元素,并遍历
        */
		public class MapDemo04 {
		    public static void main(String[] args) {
		        // 创建一个HashMap集合,键是学号(String),值是学生对象(Student)
		        HashMap<String, Student> map = new HashMap<>();
		        // 创建学生对象
		        // Student stu1 = new Student("张三",13);
		        // Student stu2 = new Student("李四",14);
		        // Student stu3 = new Student("王五",15);

		        // 将学生对象添加到map集合中
		        map.put("001", new Student("张三",13));
		        map.put("002", new Student("李四",14));
		        map.put("003", new Student("王五",15));

		        // 使用两种方式遍历map集合
		        // keySet
		        Set<String> set = map.keySet();
		        for (String key : set) {
		            Student stu = map.get(key);
		            System.out.println(key + "=" + stu);
		        }
		        System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
		        // entrySet
		        Set<Map.Entry<String, Student>> entries = map.entrySet();
		        for (Map.Entry<String, Student> entry : entries) {
		            String key = entry.getKey();
		            Student value = entry.getValue();
		            System.out.println(key + "=" + value);
		        }
		    }
		}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值