栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Map 和 Set (Java详细讲解)看我就够了

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Map 和 Set (Java详细讲解)看我就够了

Map 和 Set 

目录

Map 和 Set 

概念:

主要内容:

Mao集合

    Map的常用方法

注意事项

HashMap,TreeMap和linkedHashMap   

TreeMap和HashMap的区别

Set集合

    作用:

    常用方法:

注意事项


Map 和 Set 

概念:

Map和set是一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例化子类有关。以前常见的 搜索方式有:

    1.直接遍历,时间复杂度为O(N),元素如果比较多效率会非常慢

    2. 二分查找,时间复杂度为 ,但搜索前必须要求序列是有序的

上述排序比较适合静态类型的查找,即一般不会对区间进行插入和删除操作了,而现实中的查找比如:

    1. 根据姓名查询考试成绩

    2. 通讯录,即根据姓名查询联系方式

    3. 不重复集合,即需要先搜索关键字是否已经在集合中可能在查找时进行一些插入和删除的操作,即动态查找,那上述两种方式就不太适合了,而Map和Set是 一种适合动态查找的集合容器。

主要内容:

    二分搜索树 BST 在JDK中主要是TreeSet 和 TreeMap

    哈希表 在JDK中主要是HashSet 和 HashMap

Set:存储不重复的Key值,使用Set来进行去重操作处理。

Map:存储的是Key = Value键值对,若需要根据Key找到相应的Value使用Map集合。

Mao集合

    Map的常用方法

​​​​​​​ 

注意事项

    1.Map是一个接口,不能直接实例化对象,如果要实例化对象只能实例化其实现类TreeMap或者HashMap

    2.Map中存放键值对的Key是唯一的,value是可以重复的

    3.在Map中插入键值对时,key不能为空,否则就会抛NullPointerException异常,但是value可以为空  

    4.Map中的Key可以全部分离出来,存储到Set中来进行访问(因为Key不能重复)。

    5.Map中的value可以全部分离出来,存储在Collection的任何一个子集合中(value可能有重复)。

    6.Map中键值对的Key不能直接修改,value可以修改,如果要修改key,只能先将该key删除掉,然后再来进重新插入。

HashMap,TreeMap和linkedHashMap   

    1.HashMap是基于哈希表 + 红黑树的结构(JDK8之后),HashMap的元素保存顺序与元素的插入顺序无关,key和value都可以为null。

    2.TreeMap是基于红黑树的结构,TreeMap的元素保存顺序与元素的插入顺序也无关,key不能为null,value可以为null。使用TreeMap保存元素时,元素必须是Comparable子类或者传入比较器

    3.linkedHashMap就是在HashMap的基础上维护了一个链表来记录元素的插入先后,可以按照元素的插入顺序来保存元素。

TreeMap和HashMap的区别

             

 

Set集合

    作用:

     去重,Set与Map主要的不同有两点:Set是继承自Collection的接口类,Set中只存储了Key。

    遍历Set集合,直接使用for - each循环即可(只要是Iterable接口的子类,都可以直接使用for - each循环),在遍历Map集合时需要将Map转为Set - for(Map.entry<具体类型> entry : map.entrySet())

 

    常用方法:

 

注意事项

    1.Set是继承自Collection的一个接口类。

    2.Set中只存储了key,并且要求key一定要唯一。

    3.Set的底层是使用Map来实现的,其使用key与Object的一个默认对象作为键值对插入到Map中的。    

    4.Set最大的功能就是对集合中的元素进行去重。

    5.实现Set接口的常用类有TreeSet和HashSet,还有一个linkedHashSet,linkedHashSet是在HashSet的基础上维护了一个双向链表来记录元素的插入次序。

    6.Set中的Key不能修改,如果要修改,先将原来的删除掉,然后再重新插入。

    7.Set中不能插入null的key。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/777416.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号