欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

荐 Java——集合中的Map接口通过HashMap类实现一些常用的方法

程序员文章站 2024-02-01 16:13:28
1.Map接口简介说明:Map接口是一种双列集合,它的每个元素都包含一个键对象 Key 和值对象 Value,键和值对象之间存在一种对应关系,称为映射。那什么是映射呢?在生活中,我们常常会看到这样的一种集合:账号——密码、IP地址——主机名、系统用户名——系统用户对象等。像这种一一对应的关系,就叫做映射。特点:①Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)。 ②Map集合中的元素,key 和 value 的数据类型可以相同,也可以不同。......

任何复杂的知识往往给人的感觉都是那么的不友好,所以,一定要静下心来,耐心去看、去读、去理解这些东西!!!  

1.Map接口简介

说明:Map接口是一种双列集合,它的每个元素都包含一个键对象 Key 和值对象 Value,键和值对象之间存在一种对应关系,称为映射。 那什么是映射呢?在生活中,我们常常会看到这样的一种集合:账号——密码、IP地址——主机名、系统用户名——系统用户对象等。像这种一一对应的关系,就叫做映射。

特点:①Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)。

           ②Map集合中的元素,key 和 value 的数据类型可以相同,也可以不同。

           ③Map集合中的元素,key 是不允许重复的, value 是可以重复的。

           ④Map集合中的元素,key 和 value是一一对应的。

 

2.HashMap类简介 

说明:HashMap 是 Map 接口的一个实现类,它用于存储键值映射关系,该集合的键和值允许为空,但键不能重复,且集合中的元素是无序的。 

特点:HashMap 底层是由哈希表结构组成的,其实就是“数组+链表”的组合体,数组是 HashMap 的主体结构,链表则主要是为了解决哈希值冲突而存在的分支结构。正因为这样特殊的存储结构,HashMap 集合对于元素的增、删、改、查操作表现出的效率都比较高。

2.1 内部结构 

荐
                                                        Java——集合中的Map接口通过HashMap类实现一些常用的方法

2.2 存储原理 

荐
                                                        Java——集合中的Map接口通过HashMap类实现一些常用的方法

 

3.Map接口常用的方法 

荐
                                                        Java——集合中的Map接口通过HashMap类实现一些常用的方法

荐
                                                        Java——集合中的Map接口通过HashMap类实现一些常用的方法

 

4.应用举例 

import java.util.*;
/*import java.util.Map;
  import java.util.HashMap;
  import java.util.Collection;
  import java.util.Set;
  import java.util.Iterator;*/
public class MapDemo {
	public static void main(String[] args) {
		//用多态的形式,创建一个hashmap集合,集合长度为16
		Map<String,String> hashmap=new HashMap<String,String>(16);
		System.out.println("↓↓↓Map集合常用方法如下↓↓↓");
		System.out.println("---------------------------------------------");
		System.out.println("创建第一个空的hashmap集合,键、值类型均为String类:" + hashmap);
		System.out.println("---------------------------------------------");
		hashmap.put("公共的","public");
		hashmap.put("受保护的","protected");
		hashmap.put("默认的","friendly");
		hashmap.put("默认的","default");//覆盖这个键之前对应的值
		hashmap.put("私有的","private");
		System.out.println("向hashmap集合中添加键值对元素:" + hashmap);
		System.out.println("此时hashmap集合中键值对的个数为:" + hashmap.size());
		System.out.println("---------------------------------------------");
		System.out.println("获取hashmap集合中键\"公共的\"所映射的值:" + hashmap.get("公共的"));
		System.out.println("---------------------------------------------");
		System.out.println("查看hashmap集合中是否存在键对象\"私有的\":" + hashmap.containsKey("私有的"));
		System.out.println("查看hashmap集合中是否存在值对象\"protected\":" + hashmap.containsValue("protected"));
		System.out.println("---------------------------------------------");
		String str1=hashmap.remove("默认的");
		System.out.println("将指定的键所对应的键值对元素移除,并返回该元素的值:" + str1);
		System.out.println("移除之后,hashmap集合为:" + hashmap);
		System.out.println("---------------------------------------------");
		Set<String> set=hashmap.keySet();
		System.out.println("以Set集合的形式返回hashmap集合中所有的键对象:" + set);
		System.out.println("---------------------------------------------");
		Collection<String> collection=hashmap.values();
		System.out.println("以Collection集合的形式返回hashmap集合中所有的值对象:" + collection);
		System.out.println("---------------------------------------------");
		Set<Map.Entry<String,String>> setmap=hashmap.entrySet();
		System.out.println("将hashmap集合转换为存储元素类型为Map的Set集合:" + setmap);
		System.out.println("---------------------------------------------");
		System.out.println("Iterator迭代器遍历Map集合——keySet()方法:");
		Set<String> setkey1=hashmap.keySet();//以Set集合的形式返回hashmap集合中所有的键对象
		Iterator<String> iterator1=setkey1.iterator();//获取Set集合的迭代器对象,并遍历该迭代器对象
		while(iterator1.hasNext()) {
			Object key1=iterator1.next();//获取键
			Object value1=hashmap.get(key1);//通过键获取相应的值
			System.out.println("键:" + key1 + ",值:" + value1);
		}
		System.out.println("---------------------------------------------");
		System.out.println("Iterator迭代器遍历Map集合——entrySet()方法:");
		Set<Map.Entry<String,String>> setkey2=hashmap.entrySet();//将hashmap集合转换为存储元素类型为Map的Set集合
		Iterator<Map.Entry<String,String>> iterator2=setkey2.iterator();//获取Set集合的迭代器对象,并遍历该迭代器对象
		while(iterator2.hasNext()) {
			//通过Entry对象的getKey()和getValue()方法,获取键和值
			Map.Entry<String,String> kv=iterator2.next();
			Object key2=kv.getKey();
			Object value2=kv.getValue();
			System.out.println("键:" + key2 + ",值:" + value2);
		}
		System.out.println("---------------------------------------------");
		System.out.println("使用Lambda表达式的书写形式来遍历Map集合:");
		//JDK 8新方法遍历Map集合(Lambda表达式特性),这里也可以使用for-each循环对hashmap集合进行遍历
		hashmap.forEach((key,value)->System.out.println("键:" + key + ",值:" + value));
		System.out.println("---------------------------------------------");
		hashmap.clear();
		System.out.println("清空hashmap集合中的所有键值对元素:" + hashmap);
		System.out.println("---------------------------------------------");
	}
}

荐
                                                        Java——集合中的Map接口通过HashMap类实现一些常用的方法

本文地址:https://blog.csdn.net/weixin_43823808/article/details/107336010