【JavaSE】Java基础语法(二十九):Map集合

不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。【JavaSE】Java基础语法(二十九):Map集合,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

在这里插入图片描述

1. Map集合概述和特点

  • Map集合概述
interface Map<K,V> K:键的类型;V:值的类型
  • Map集合的特点

    • 双列集合,一个键对应一个值
    • 键不可以重复,值可以重复
  • Map集合的基本使用

public class MapDemo01 {
	public static void main(String[] args) {
		//创建集合对象
		Map<String,String> map = new HashMap<String,String>();
		
		//V put(K key, V value) 将指定的值与该映射中的指定键相关联
		map.put("001","刘亦菲");
		map.put("002","宋祖儿");
		map.put("003","林黛玉");
		map.put("003","江疏影");
		
		//输出集合对象
		System.out.println(map);
	}
}

2. Map集合的基本功能

  • 方法介绍
    在这里插入图片描述

  • 示例代码
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("张无忌","赵敏");
		map.put("郭靖","黄蓉");
		map.put("杨过","小龙女");
		//V remove(Object key):根据键删除键值对元素
		// System.out.println(map.remove("郭靖"));
		// System.out.println(map.remove("郭襄"));
		//void clear():移除所有的键值对元素
		// map.clear();
		//boolean containsKey(Object key):判断集合是否包含指定的键
		// System.out.println(map.containsKey("郭靖"));
		// System.out.println(map.containsKey("郭襄"));
		//boolean isEmpty():判断集合是否为空
		// System.out.println(map.isEmpty());
		//int size():集合的长度,也就是集合中键值对的个数
		System.out.println(map.size());
		//输出集合对象
		System.out.println(map);
	}
}

3. Map集合的获取功能【应用】

  • 方法介绍
    在这里插入图片描述

  • 示例代码

public class MapDemo03 {
	public static void main(String[] args) {
		//创建集合对象
		Map<String, String> map = new HashMap<String, String>();
		//添加元素
		map.put("张无忌", "赵敏");
		map.put("郭靖", "黄蓉");
		map.put("杨过", "小龙女");
		//V get(Object key):根据键获取值
		// System.out.println(map.get("张无忌"));
		// System.out.println(map.get("张三丰"));
		//Set<K> keySet():获取所有键的集合
		// Set<String> keySet = map.keySet();
		// for(String key : keySet) {
		// System.out.println(key);
		// }
		//Collection<V> values():获取所有值的集合
		Collection<String> values = map.values();
		for(String value : values) {
		System.out.println(value);
		}
	}
}

4. Map集合的遍历(方式1)

  • 遍历思路
    • 我们刚才存储的元素都是成对出现的,所以我们把Map看成是一个夫妻对的集合
    • 把所有的丈夫给集中起来
    • 遍历丈夫的集合,获取到每一个丈夫
    • 根据丈夫去找对应的妻子

  • 步骤分析
    • 获取所有键的集合。用keySet()方法实现
    • 遍历键的集合,获取到每一个键。用增强for实现
    • 根据键去找值。用get(Object key)方法实现

  • 代码实现
public class MapDemo01 {
	public static void main(String[] args) {
		//创建集合对象
		Map<String, String> map = new HashMap<String, String>();
		
		//添加元素
		map.put("张无忌", "赵敏");
		map.put("郭靖", "黄蓉");
		map.put("杨过", "小龙女");
		
		//获取所有键的集合。用keySet()方法实现
		Set<String> keySet = map.keySet();
		
		//遍历键的集合,获取到每一个键。用增强for实现
		for (String key : keySet) {
			//根据键去找值。用get(Object key)方法实现
			String value = map.get(key);
			System.out.println(key + "," + value);
		}
	}
}

5. Map集合的遍历(方式2)

public class MapDemo02 {
	public static void main(String[] args) {
		//创建集合对象
		Map<String, String> map = new HashMap<String, String>();
		
		//添加元素
		map.put("张无忌", "赵敏");
		map.put("郭靖", "黄蓉");
		map.put("杨过", "小龙女");
		
		//获取所有键值对对象的集合
		Set<Map.Entry<String, String>> entrySet = map.entrySet();
		
		//遍历键值对对象的集合,得到每一个键值对对象
		for (Map.Entry<String, String> me : entrySet) {
			//根据键值对对象获取键和值
			String key = me.getKey();
			String value = me.getValue();
			System.out.println(key + "," + value);
		}
	}
}

6. map四种遍历方式

import java.util.*;
public class Test{
	public static void main(String[] args) {
		Map<String, String> map = new HashMap<String, String>();
		map.put("1", "value1");
		map.put("2", "value2");
		map.put("3", "value3");
		
		//第一种:普遍使用,二次取值
		System.out.println("通过Map.keySet遍历key和value:");
		for (String key : map.keySet()) {
			System.out.println("key= "+ key + " and value= " + map.get(key));
		}
		
		//第二种
		System.out.println("通过Map.entrySet使用iterator遍历key和value:");
		Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
		while (it.hasNext()) {
			Map.Entry<String, String> entry = it.next();
			System.out.println("key= " + entry.getKey() + " and value= " +
			entry.getValue());
		}
		
		//第三种:推荐,尤其是容量大时
		System.out.println("通过Map.entrySet遍历key和value");
		for (Map.Entry<String, String> entry : map.entrySet()) {
			System.out.println("key= " + entry.getKey() + " and value= " +
			entry.getValue());
		}
		
		//第四种
		System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
		for (String v : map.values()) {
			System.out.println("value= " + v);
		}
		
		//
		// 遍历TreeMap集合
		tm.forEach(
			(String key, String value)->{
			System.out.println(key + "---" + value);
			}
		);
	}
}

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/162190.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!