Java集合进阶——Map
创始人
2024-05-13 09:13:44
0

一、Java Map集合详解

Map集合概述和特点
概述:
将键映射到值的对象
一个映射不能包含重复的键
每个键最多只能映射到一个值
Map接口和Collection接口的不同
Map是双列的,Collection是单列的
Map的键唯一,Collection的子体系Set是唯一的
Map集合的数据结构针对键有效,跟值无关;Collection集合的数据结构是针对元素有

Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键对象和一个值对象。其中,键对象不允许重复,而值对象可以重复,并且值对象还可以是 Map 类型的,就像数组中的元素还可以是数组一样。

Map 接口主要有两个实现类:HashMap 类和 TreeMap 类。其中,HashMap 类按哈希算法来存取键对象,而 TreeMap 类可以对键对象进行排序。

二、Map集合的功能概述

a:添加功能
V put(K key,V value):添加元素。这个其实还有另一个功能?替换
如果键是第一次存储,就直接存储元素,返回null
如果键不是第一次存在,就用值把以前的值替换掉,返回以前的值
b:删除功能
void clear():移除所有的键值对元素
V remove(Object key):根据键删除键值对元素,并把值返回
c:判断功能
boolean containsKey(Object key):判断集合是否包含指定的键
boolean containsValue(Object value):判断集合是否包含指定的值
boolean isEmpty():判断集合是否为空
d:获取功能
Set> entrySet(): 返回一个键值对的Set集合
V get(Object key):根据键获取值
Set keySet():获取集合中所有键的集合
Collection values():获取集合中所有值的集合
e:长度功能
int size():返回集合中的键值对的对数

Map 接口中提供的常用方法如表 1 所示。

 具体的实现代码如下:

import java.util.HashMap;
import java.util.Map;public class A01_MapDemo1 {public static void main(String[] args) {// TODO Auto-generated method stub//1.创建Map集合对象Map m=new HashMap();//2.添加元素m.put("郭靖", "黄蓉");m.put("韦小宝", "木健平");m.put("尹志平", "小龙女");m.put("韦小宝", "小龙女");//4.删除//String result=m.remove("郭靖");//System.out.println(result);//5.清空//m.clear();//6.是否包含指定的键//boolean result=m.containsKey("韦小宝");//System.out.println(result);//7.是否包含指定的值//boolean result=m.containsValue("小龙女");//System.out.println(result);//8.判断集合是否为空boolean result=m.isEmpty();System.out.println(result);//9.集合的长度,也就是键值对的个数int length=m.size();System.out.println(length);//3.打印集合System.out.println(m);}}

三、LinkedHashMap的概述和使用

LinkedHashMap的概述: Map 接口的哈希表和链接列表实现,具有可预知的迭代顺序LinkedHashMap的特点: 底层的数据结构是链表和哈希表 元素有序 并且唯一
元素的有序性由链表数据结构保证 唯一性由 哈希表数据结构保证
Map集合的数据结构只和键有关

案例需求:

创建一个HashMap集合,键是学生对象(Student,值是String)。

存储三个键值对元素,并遍历

要求:同姓名、同年龄认为是同一个学生

public class Student {private String name;private int age;public Student() {// TODO Auto-generated constructor stub}public Student(String name, int age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Student {name=" + name + ", age=" + age + "}";}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + age;result = prime * result + ((name == null) ? 0 : name.hashCode());return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;Student other = (Student) obj;if (age != other.age)return false;if (name == null) {if (other.name != null)return false;} else if (!name.equals(other.name))return false;return true;}}


 

import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;public class A05_MapDemp5 {public static void main(String[] args) {// TODO Auto-generated method stub//1.创建HashMap集合HashMap map=new HashMap<>();//2.创建三个学生对象Student s1=new Student("张三",23);Student s2=new Student("李四",24);Student s3=new Student("王五",25);Student s4=new Student("王五",25);//3.将三个学生对象添加到集合当中map.put(s1, "河北");map.put(s2, "安徽");map.put(s3, "浙江");map.put(s4, "江苏");Set keys=map.keySet();for(Student key:keys) {String value=map.get(key);System.out.println(key+"="+value);}}}

相关内容

热门资讯

公司迎春晚会的主持词 公司迎春晚会的主持词  主持词的写作需要将主题贯穿于所有节目之中。在当今不断发展的世界,主持人在活动...
少儿节目主持词 精选少儿节目主持词4篇  主持词已成为各种演出活动和集会中不可或缺的一部分。随着社会一步步向前发展,...
王家卫电影经典台词 王家卫电影经典台词(精选50句)  我们爱看王家卫的电影,不止爱他所创造的那个光影世界,更爱他电影中...
演唱会主持台词 演唱会主持台词  (甲)尊敬的各位领导,  (乙)各位来宾,  (甲)敬爱的老师,  (乙)亲爱的同...
《你的名字》经典台词 《你的名字》经典台词  你的名字,是谁的心事,还记得你的名字里面的经典台词吗?以下是小编为你精心整理...
教研活动主持词 教研活动主持词  主持人在台上表演的灵魂就表现在主持词中。在当下的中国社会,主持成为很多活动不可或缺...
艺术节主持词开场白 艺术节主持词开场白  什么是艺术节  艺术节是文艺工作者及艺术家、艺术爱好者之间学术交流与学习的重要...
老板在公司年会致辞 老板在公司年会致辞15篇  在平平淡淡的学习、工作、生活中,大家最不陌生的就是致辞了吧,致辞具有针对...
央视春晚主持词台词 央视春晚主持词台词  主持词是主持人在节目进行过程中用于串联节目的串联词。在各种集会、活动不断增多的...
教师节朗诵晚会串词 教师节朗诵晚会串词  主持词需要富有情感,充满热情,才能有效地吸引到观众。在当今不断发展的世界,越来...
趣味运动会主持稿 趣味运动会主持稿(通用7篇)  在充满活力,日益开放的今天,很多地方都会使用到主持稿,主持稿是主持人...
鼠年文艺晚会的主持词 鼠年文艺晚会的主持词  1、喜鹊枝头叫,猴年已来到。好运来报道,健康身边绕。跨羊威武耀,进财装元宝。...
订婚仪式主持词 订婚仪式主持词(通用16篇)  主持词的写作需要将主题贯穿于所有节目之中。在人们积极参与各种活动的今...
文化艺术节闭幕词 文化艺术节闭幕词(精选6篇)  在日新月异的现代社会中,我们都可能会用到闭幕词,闭幕词的作用是辅助讲...
幼儿园签约仪式主持词 幼儿园签约仪式主持词  主持词没有固定的格式,他的最大特点就是富有个性。现今社会在不断向前发展,主持...
电影后来的我们台词 电影后来的我们台词  电影《后来的我们》可以说是风波不断,那么后来的我们经典语录台词有哪些?下面是小...
音乐串词 音乐串词甲:金牛报春来! 又是瑞雪飘飞的季节了,我们打一小学这个大家庭每到这时候总会欢聚一堂。 共庆...
不差钱的经典台词 不差钱的经典台词  赵本山:苏格兰调情。  小沈阳:人家是纯爷们。  丫蛋:洪湖水浪打浪,长江后浪推...
《终结者2》的经典台词 《终结者2》的经典台词  1.I’ll be back。  我会回来的。  2.I need you...
婚宴新娘致辞 婚宴新娘致辞(合集15篇)  无论在学习、工作或是生活中,大家都对致辞很是熟悉吧,在各种重大的庆典、...