Map集合:

1.Map集合与Collection集合的区别:

1.Collection中的集合,元素是孤立存在的,向集合中存储元素采用一个个元素的方式存储。

2.Map中的集合1,元素是成对存在的,每个元素由键合值两个部分组成,通过键可以找到对应的值。

3.Collection中的集合称为单列集合,而Map中的集合称为双列集合。

4.Map中的集合不能包含重复的键,但可以有重复值;每个键只能有一个值。

2.Map中常用的子类:

。HashMap:存储数据采用的哈希表结构,元素的存储顺序不能保持一致。由于要保证键的唯一,不重复,所以要重写hashCode()方法和equal()方法。

。LinkHashMap:通过链表结构可以保证元素的存储顺序一致,同样也要重写hashCode()方法和equals()方法。

3.Map接口中的常用方法:

public v put(K key,V value):  把指定的键与指定的值添加到Map集合中。

public v remove(Object key):  把指定的键对应的元素在对应的集合中删除,返回的是被删除的元素的值

public V get(Object key)  :根据指定的键在Map集合中获取对应的值

public boolean containsKey(Object key)  :判断当前对象是否存在于集合中

public Set<K> keySet()  :获取Map集合中的所有键,存储到set集合中

public Set<Map.Entry<K,V>> entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)。

Map接口的方法演示:

import java.util.HashMap;public class MapDemo {public static void main(String[] args) {HashMap<String,String> hashMap = new HashMap<String,String>();hashMap.put("刀锋之影", "泰隆");hashMap.put("刀锋意志", "艾瑞莉娅");hashMap.put("放逐之刃", "瑞文");hashMap.put("疾风剑豪", "亚索");System.out.println(hashMap);System.out.println("--------------------------------");System.out.println(hashMap.remove("放逐之刃"));System.out.println(hashMap);System.out.println("--------------------------------");System.out.println(hashMap.get("疾风剑豪"));}
}打印结果:
{刀锋意志=艾瑞莉娅, 疾风剑豪=亚索, 放逐之刃=瑞文, 刀锋之影=泰隆}
--------------------------------
瑞文
{刀锋意志=艾瑞莉娅, 疾风剑豪=亚索, 刀锋之影=泰隆}
--------------------------------
亚索

注:使用put方法时,若指定的键(key)在集合中没有,则新增;若指定的键在集合中存在,把指定键对应的值,替换成对应的新值。

4.Map集合遍历键找值得方式:

键找值方式:即通过元素中的键,获取键所对应的值

分析步骤:

  1. 获取Map中所有的键,由于键是唯一的,所以返回一个Set集合存储所有的键。方法提示:keyset()
  2. 遍历键的Set集合,得到每一个键。
  3. 根据键,获取键所对应的值。方法提示:get(K key)

代码演示:

import java.util.HashMap;
import java.util.Set;public class MapDemo {public static void main(String[] args) {HashMap<String,String> hashMap = new HashMap<String,String>();hashMap.put("刀锋之影", "泰隆");hashMap.put("刀锋意志", "艾瑞莉娅");hashMap.put("放逐之刃", "瑞文");hashMap.put("疾风剑豪", "亚索");//获取所有键, 获取键值Set<String> keySet = hashMap.keySet();//获取对应的值for(String key : keySet) {System.out.println(key+":"+hashMap.get(key));}}
}打印结果:
刀锋意志:艾瑞莉娅
疾风剑豪:亚索
放逐之刃:瑞文
刀锋之影:泰隆   

5.Entry键值对对象

我们已经知道,Map中存放的是两种对象,一种称为key(键),一种称为value(值),它们在在Map中是一一对应关系,这一对对象又称做Map中的一个Entry(项)Entry将键值对的对应关系封装成了对象。即键值对对象,这样我们在遍历Map集合时,就可以从每一个键值对(Entry)对象中获取对应的键与对应的值。

既然Entry表示了一对键和值,那么也同样提供了获取对应键和对应值得方法:

  • public K getKey():获取Entry对象中的键。
  • public V getValue():获取Entry对象中的值。

在Map集合中也提供了获取所有Entry对象的方法:

  • public Set<Map.Entry<K,V>> entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)。

6.Map集合遍历键值对方式:

键值对方式:即通过集合中每个键值对(Entry)对象,获取键值对(Entry)对象中的键与值。

操作步骤:

  1. 获取Map集合中,所有的键值对(Entry)对象,以Set集合形式返回。方法提示:entrySet()
  2. 遍历包含键值对(Entry)对象的Set集合,得到每一个键值对(Entry)对象。
  3. 通过键值对(Entry)对象,获取Entry对象中的键与值。 方法提示:getkey() getValue()

案例演示:

import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;public class MapDemo {public static void main(String[] args) {HashMap<String,String> hashMap = new HashMap<String,String>();hashMap.put("刀锋之影", "泰隆");hashMap.put("刀锋意志", "艾瑞莉娅");hashMap.put("放逐之刃", "瑞文");hashMap.put("疾风剑豪", "亚索");//获取所有的 entry对象 entrySetSet<Entry<String,String>> entrySet = hashMap.entrySet();//遍历得到每一个entrySet对象for(Entry<String,String> entry : entrySet) {System.out.println(entry.getKey()+":"+entry.getValue());}}
}打印结果:
刀锋意志:艾瑞莉娅
疾风剑豪:亚索
放逐之刃:瑞文
刀锋之影:泰隆

注:Map集合不能直接使用迭代器或者foreach进行遍历。但是转成Set之后就可以使用了。

Java基础之Map集合相关推荐

  1. Java 基础面试之集合

    Java 基础面试之集合 1.Collection接口 的实现类 答:Collection接口有3个子接口:List.Set.Queue a.List(有序.可重复):的实现类有ArrayList.V ...

  2. Java中遍历Map集合的5种方式总结

    这篇文章主要给大家介绍了关于Java中遍历Map集合的5种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值. 方式一 通过Map.keySet使用iterator遍历 ...

  3. java基础入门-04-【集合学生管理系统】

    Java基础入门-04-[集合&学生管理系统] 11.集合&学生管理系统 11.1.ArrayList 集合和数组的优势对比: 11.1.1 ArrayList类概述 11.1.2 A ...

  4. JAVA中的Map集合

    JAVA中的Map集合 1.Map简介 java.util.map接口 1.Map称为查找表,该数据结构的样子是一个"多行两列"的表格,左列为key,右列为value,Map总是根 ...

  5. JAVA 基础之容器集合(Collection和Map)

    目录 前言 一.Collection集合 1.1List集合 1.1.1ArrayList集合 1.1.2LinkedList集合 1.2Set集合 1.2.1HashSet集合 HashSet集合保 ...

  6. Java编程基础19——Map集合斗地主案例

    1_Map集合概述和特点 A:Map接口概述 查看API可以知道: 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能映射到一个值 B:Map接口和Collection接口的不同 Map是双 ...

  7. 【Java基础】-【集合:Map接口 】

    一.Map接口 1.Map接口概述 将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射到一个值. 2.Map接口和Collection接口的不同 ①Map是双列的,Collection是 ...

  8. Java基础——常用Map的实现细节

    2019独角兽企业重金招聘Python工程师标准>>> Java基础--Map HashMap 数据结构: 数组 + 单链表 transient Entry[] table; // ...

  9. Java基础知识与集合部分面试题整理

    JAVA基础知识 一.JDK与JRE 1.JDK和JRE的区别 可从面向对象.主要作用和组成部分三方面对比.如下图所示: 2.JDK – Java Development Kit 1). 主要面向开发 ...

最新文章

  1. MySQL开启远程连接权限
  2. 【面试题视频讲解】TreeSet使用示例
  3. ae抠像插件_AE抠像背景残留去除
  4. 解决SWFUpload在Chrome、Firefox浏览器下session找不到的问题
  5. mui ajax 传递base64,HTML5 MUI 手机预览图片,裁剪上传base64,保存数据库
  6. MADDPG中环境怎么配置,multiagent包解决
  7. 25 SD配置-主数据-信用管理-定义信用段
  8. junit学习笔记(二):hamcrest和TestSuit
  9. java for 变量赋值_Java 如何引用变量赋值?
  10. 机器视觉常用算法C语言实现
  11. 创建一个简单的MFC程序
  12. labview用户登录与管理界面设计
  13. Android上边抽屉式标题,Android Navigation Drawer样式抽屉的使用
  14. HTML5射击鸭子小游戏
  15. CSS基础(8)- 盒模型应用
  16. 马未都:人生三重境界
  17. Windows笔记本声音无法找到输出设备
  18. 汽车网络安全渗透测试
  19. 从用户交互场景出发,欧瑞博MixPad要系统化定义智能居住空间
  20. 解决wps工作簿从文本中复制粘贴时单元格中首位0无法显示

热门文章

  1. tcc php,事务 - TCC模式
  2. Python数据分析之Matplotlib的常用操作总结
  3. hhvm_HHVM和WordPress入门
  4. 《深度解析Java游戏服务器开发》源码
  5. Java程序设计课程练习题(题目+答案)
  6. 整理了47个python人工智能库,超详细(含资源),建议收藏,不懂可随时来看
  7. 身份证,港澳通行证,台胞证,护照正则表达式
  8. 20220517关闭MT6765的android8.1系统的efuse分区
  9. Hive 中分区是否越多越好?
  10. 全球及中国广告机行业竞争现状与市场需求展望报告2022-2028年