荐 Java——集合中的Map接口通过HashMap类实现一些常用的方法
程序员文章站
2022-05-18 17:48: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 内部结构
2.2 存储原理
3.Map接口常用的方法
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("---------------------------------------------");
}
}
本文地址:https://blog.csdn.net/weixin_43823808/article/details/107336010