IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> Day-17 -> 正文阅读

[数据结构与算法]Day-17

Map

1? ? ? ? Set

1.1? ? ? ? 散列表

散列表 : 可以理解为数组保存元素是个链表

hashCode : hash算法,是把不定长的数据改变为定长的数据,是一种安全的加密算法,但不保证唯一

同一个对象生成多次hash值,那么值一定是相同的

不同对象也有可能生成相同的hash值

添加过程 :?

1 先调用添加的K,调用hashCode生成hash值
?? ? ? ? ? ??2 根据hash值计算数组下标
?? ? ? ? ? ? 3 判断数组中该下标对应的位置上是否有元素
?? ? ? ? ? ? ?3.1如果没有保存数据,就把该对象放到对应的下标中
?? ? ? ? ? ? ?3.2如果保存了数据,此时调用添加的K的equals方法,和数组中该下标对应的所有数据的key进行比较
?? ? ? ? ? ? ?3.3如果和数组下标对应的链表中的数据都不相等,就把该数据添加到对应的链表中
?? ? ? ? ? ? ?3.4如果和链表中的数据一致了,则key不添加,把value值替换(用新的替换原来的)
?? ? ? ? ? ? ?4 Java1.8改动,如果该链表中,节点个数大于7,则该链表被转换为红黑树

?

1.2? ? ? ? hashSet

?

?

2? ? ? ? Map

2.1? ? ? ? 继承体系

?

2.2? ? ? ? map特性

Map : 无序 , key不可重复,value值可重复

?Map和Collection不一样,但是操作基本上是一样的

集合保存单个对象,而map保存键值对映射关系

2.3? ? ? ? 常用方法

常用方法 :?
?? ? ? ? ?put(K,V) : 添加数据
?? ? ? ? ?remove(K) : 删除数据
?? ? ? ? ?clear() : 清空
?? ? ? ? ?size() : 个数
?? ? ? ? ?isEmpty() : 判断是否为空
?? ? ? ? ?get(K) : 根据Key获取value
?? ? ? ? ?values() : 获取所有的value,返回集合
?? ? ? ? ?containsKey(K) : 判断是否包含某个key
?? ? ? ? ?containsValue(V) : 判断是否包含某个value
?? ? ? ? ?Set keySet() : 获取map中所有的key,返回set
?? ? ? ? ?Set entrySet() : 获取map中的键值对,返回set??

2.4? ? ? ? HashMap

map 不能直接遍历

将map转换为set,并把key和value封装到了entry类对象中,然后把entry类对象保存到set即可

getKey 是获取key,getValue是获取value?

2.5????????Properties

Properties : key和value强制要求必须是字符串

2.6? ? ? ? TreeMap

?TreeMap : 保存的元素可以按照一定的规则进行排序
??排序 :?
?1 要添加的元素,实现了Comparable接口
?2 编写比较器类,实现Comparator接口
??treeMap 在添加的时候,会自动调用key对象的compareTo方法,使用key进行比较,而不是value?

2.7? ? ? ? 面试题

Map转list并以value排序

?

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-10-26 12:25:59  更:2021-10-26 12:27:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:24:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码