当前位置: 首页 > news >正文

做电销有什么资料网站七色板网站建设

做电销有什么资料网站,七色板网站建设,官方网站建设的意义,汽车销售网站模板 cms文章目录 前言一、概述1. 认识HashMap2. HashMap 的作用和重要性3. 简要讲解 HashMap 的基本原理和实现方式 二、了解 HashMap 创建及其的常见操作方法1. HashMap的创建2. 添加元素 put()3. 访问元素 get()4. 删除元素 remove()5. 计算大小 size()6. 迭代 HashMap for-each7.判… 文章目录 前言一、概述1. 认识HashMap2. HashMap 的作用和重要性3. 简要讲解 HashMap 的基本原理和实现方式 二、了解 HashMap 创建及其的常见操作方法1. HashMap的创建2. 添加元素 put()3. 访问元素 get()4. 删除元素 remove()5. 计算大小 size()6. 迭代 HashMap for-each7.判断是否为空 isEmpty()8. 判断 HashMap 中是否存在指定 key containsKey()9. 获取指定 key 对应对 value如果找不到 key 则返回设置的默认值 getOrDefault() 总结 前言 为了巩固所学的知识作者尝试着开始发布一些学习笔记类的博客方便日后回顾。当然如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚文章中如果有记录错误欢迎读者朋友们批评指正。 博客的参考源码可以在我主页的资源里找到如果在学习的过程中有什么疑问欢迎大家在评论区向我提出 一、概述 1. 认识HashMap HashMap 是一个散列表它存储的内容是键值对(key-value)映射 HashMap 实现了 Map 接口根据键的 HashCode 值存储数据具有很快的访问速度最多允许一条记录的键为 null不支持线程同步 HashMap 是无序的即不会记录插入的顺序 HashMap 继承于AbstractMap实现了 Map、Cloneable、java.io.Serializable 接口 HashMap 的 key 与 value 类型可以相同也可以不同可以是字符串String类型的 key 和 value也可以是整型Integer的 key 和字符串String类型的 value 2. HashMap 的作用和重要性 HashMap是Java中最常用的数据结构之一它实现了 Map 接口提供了键值对存储和检索的功能。HashMap 的作用和重要性体现在以下几个方面 存储和检索HashMap 可以存储大量的键值对数据并通过键快速检索对应的值。它使用哈希算法将键映射到数组的位置从而实现高效的查找操作。这使得HashMap在处理大量数据时可以快速地插入、获取和删除元素。高效性能由于 HashMap 的内部实现利用了哈希算法它的查找操作的平均时间复杂度为O(1)常数时间。这意味着HashMap 在大多数情况下能够以非常高效的方式执行插入和查找操作使得它成为处理大规模数据的理想选择。灵活性HashMap 中的键和值可以是任意类型的对象。这使得我们可以根据具体需求将不同类型的数据存储在 HashMap 中而不受限于特定的数据类型。唯一键HashMap 要求键的唯一性这意味着每个键只能在 HashMap 中出现一次。这对于通过键来查找值的场景非常有用例如存储用户信息时可以将用户ID作为键以便快速地检索该用户的信息。扩展性HashMap 可以动态地扩展根据存储数据的增长自动调整容量从而避免了手动进行容量管理的繁琐操作。 3. 简要讲解 HashMap 的基本原理和实现方式 当使用 HashMap 存储数据时它会根据键的哈希值将键值对映射到内部的数组中。基本原理可以概括为以下几步 1. HashMap函数 哈希函数哈希表中元素是由哈希函数确定的,将数据元素的关键字 Key 作为自变量通过一定的函数关系称为哈希函数计算出的值即为该元素的存储地址。哈希表中哈希函数的设计是相当重要的这也是建哈希表过程中的关键问题之一 哈希函数计算当我们向HashMap中插入一个键值对时HashMap会调用键的hashCode()方法来计算其哈希值。哈希值是一个整数用于将键映射到数组的索引位置 哈希值转换为了确保哈希值适合作为数组的索引HashMap会对计算得到的哈希值进行一些转换操作。常用的转换方法是使用哈希值与数组长度进行取模运算得到一个在数组范围内的索引值 2. HashMap存储 数组存储HashMap内部维护了一个数组每个数组元素对应一个桶bucket。每个桶可以存储一个或多个键值对。当插入或查找元素时HashMap根据计算得到的索引值找到对应的桶然后在桶中进行相应的操作 动态扩容为了提高HashMap的性能在存储的键值对数量达到一定阈值后HashMap会自动进行扩容操作。扩容过程涉及重新计算键的哈希值并重新分配键值对到更大的数组中。这样可以减少哈希冲突提高操作效率 3. HashMap冲突处理 冲突处理由于不同的键可能具有相同的哈希值这就会导致冲突。当发生冲突时HashMap使用链表或红黑树等数据结构来存储具有相同哈希值的键值对。这些数据结构允许在冲突的位置上存储多个键值对并通过比较键的equals()方法来区分它们 链表在JDK 8之前HashMap使用链表来解决冲突。当多个键值对被映射到同一个桶时它们会形成一个链表。通过遍历链表来查找、插入或删除键值对。但是当链表长度过长时会影响HashMap的性能 红黑树从JDK 8开始当链表长度超过一个阈值默认为8时链表会被自动转换为红黑树以提高操作效率。红黑树的查找、插入和删除操作具有较低的时间复杂度可以在平均情况下保持对数时间复杂度 Entry对象HashMap使用Entry对象来表示键值对。每个Entry对象包含了键、值以及指向下一个Entry的引用形成链表或红黑树结构。在JDK 8之前每个Entry对象还包含了指向前一个Entry的引用以支持快速删除操作 总的来说HashMap 通过哈希函数计算键的哈希值并将键值对映射到内部数组中的桶中。采用链表或红黑树等数据结构解决哈希冲突并通过动态扩容来提高性能。这种实现方式使得 HashMap 能够在常数时间复杂度内执行插入、查找和删除操作。 二、了解 HashMap 创建及其的常见操作方法 1. HashMap的创建 1. 关于包装类 HashMap 中的元素实际上是对象一些常见的基本类型可以使用它的包装类基本类型对应的包装类表如下 基本类型引用类型booleanBooleanbyteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacter 2. HashMap要使用包装类型而不是基本类型 泛型限制HashMap 是一个泛型类它可以存储任意类型的键和值。然而泛型类型参数只能是类而不能是基本类型。因此如果要将基本类型作为键或值存储在 HashMap 中就需要将其包装为相应的包装类型例如 Integer、Double、Boolean 等。 空值处理基本类型是不允许为 null 的而包装类型可以为 null。在 HashMap 中键和值都可以为 null。对于基本类型当我们需要在 HashMap 中存储一个空值时必须使用对应的包装类型。 3. 创建HashMap的示例 HashMap 类位于 java.util 包中使用前需要引入它语法格式如下 import java.util.HashMap; // 引入 HashMap 类以下实例我们创建一个 HashMap 对象 Sites 整型Integer的 key 和字符串String类型的 value HashMapInteger, String Sites new HashMapInteger, String();2. 添加元素 put() 要向HashMap添加元素你可以使用 put() 方法。put() 方法接受两个参数第一个参数是键Key第二个参数是值Value。以下是一个添加元素到 HashMap 的示例 map.put(A, 1);map.put(B, 2);map.put(C, 3);需要注意的是HashMap 允许将null作为键和值。如果你尝试将null作为键添加到 HashMap 中它将只有一个键为 null 的键值对。另外由于 HashMap 不是线程安全的如果在多线程环境下使用 HashMap请考虑使用线程安全的 ConcurrentHashMap。 3. 访问元素 get() 要访问HashMap中的元素你可以使用 get() 方法。get() 方法接受一个参数即要获取的键Key并返回与该键关联的值Value int value1 map.get(A); // 访问键为A的值int value2 map.get(B); // 访问键为B的值需要注意的是如果指定的键不存在于 HashMap 中get() 方法将返回 null。因此在使用 get() 方法获取值之前最好先使用containsKey() 方法 检查 HashMap 中是否存在指定的键 另外HashMap还提供了其他方法来访问元素如keySet()方法可返回所有键的集合values()方法可返回所有值的集合entrySet()方法可返回包含键值对的集合。通过使用这些方法你可以遍历HashMap中的所有键值对并执行相应的操作 4. 删除元素 remove() 使用 remove(Object key) 方法这个方法接受一个键作为参数并从 HashMap 中删除对应的键值对。例如如果你要删除键为 “key1” 的元素可以使用以下代码 HashMapString, String hashMap new HashMap();hashMap.remove(key1);使用迭代器遍历并删除元素你可以使用 Iterator 来遍历 HashMap 的键值对并使用 remove() 方法删除元素。这种方法适用于需要按条件删除元素的情况。例如如果你要删除所有值为value1的键值对可以使用以下代码 HashMapString, String hashMap new HashMap(); IteratorMap.EntryString, String iterator hashMap.entrySet().iterator(); while (iterator.hasNext()) {Map.EntryString, String entry iterator.next();if (entry.getValue().equals(value1)) {iterator.remove();} }删除所有键值对 (key-value) 可以使用 clear 方法 hashMap.clear();5. 计算大小 size() 要计算HashMap的大小即键值对的数量你可以使用size()方法。该方法返回HashMap中键值对的数量。以下是使用size()方法计算HashMap大小的示例代码 int size hashMap.size();6. 迭代 HashMap for-each 可以使用 for-each 来迭代 HashMap 中的元素 如果你只想获取 key可以使用 keySet() 方法然后可以通过 get(key) 获取对应的 value如果你只想获取 value可以使用 values() 方法 // 引入 HashMap 类 import java.util.HashMap;public class RunoobTest {public static void main(String[] args) {// 创建 HashMap 对象 SitesHashMapInteger, String Sites new HashMapInteger, String();// 添加键值对Sites.put(1, Google);Sites.put(2, Runoob);Sites.put(3, Taobao);Sites.put(4, Zhihu);// 输出 key 和 valuefor (Integer i : Sites.keySet()) {System.out.println(key: i value: Sites.get(i));}// 返回所有 value 值for(String value: Sites.values()) {// 输出每一个valueSystem.out.print(value , );}} }执行以上代码输出结果如下 key: 1 value: Google key: 2 value: Runoob key: 3 value: Taobao key: 4 value: Zhihu Google, Runoob, Taobao, Zhihu, 7.判断是否为空 isEmpty() 要判断HashMap是否为空你可以使用isEmpty()方法。该方法会返回一个布尔值表示HashMap是否为空 以下是使用isEmpty()方法判断HashMap是否为空的示例代码 System.out.println(Is HashMap empty? hashMap.isEmpty()8. 判断 HashMap 中是否存在指定 key containsKey() 要判断 HashMap 是否包含某个特定的键key你可以使用 containsKey(Object key) 方法。该方法接受一个键作为参数并返回一个布尔值表示 HashMap 是否包含该键 以下是使用 containsKey(Object key) 方法判断 HashMap 是否包含某个键的示例代码 System.out.println(Does HashMap contain key key2? hashMap.containsKey(key1));9. 获取指定 key 对应对 value如果找不到 key 则返回设置的默认值 getOrDefault() getOrDefault() 方法获取指定 key 对应对 value如果找不到 key 则返回设置的默认值 getOrDefault() 方法的语法为 hashmap.getOrDefault(Object key, V defaultValue) 参数说明 1. key - 键 2. defaultValue - 当指定的key并不存在映射关系中则返回的该默认值 返回值返回 key 相映射的的 value如果给定的 key 在映射关系中找不到则返回指定的默认值 import java.util.HashMap;class Main {public static void main(String[] args) {// 创建一个 HashMapHashMapInteger, String sites new HashMap();// 往 HashMap 添加一些元素sites.put(1, Google);sites.put(2, Runoob);sites.put(3, Taobao);System.out.println(sites HashMap: sites);// key 的映射存在于 HashMap 中// Not Found - 如果 HashMap 中没有该 key则返回默认值String value1 sites.getOrDefault(1, Not Found);System.out.println(Value for key 1: value1);// key 的映射不存在于 HashMap 中// Not Found - 如果 HashMap 中没有该 key则返回默认值String value2 sites.getOrDefault(4, Not Found);System.out.println(Value for key 4: value2);} }执行以上程序输出结果为 Value for key 1: Google Value for key 4: Not Found 总结 欢迎各位留言交流以及批评指正如果文章对您有帮助或者觉得作者写的还不错可以点一下关注点赞收藏支持一下。 博客的参考源码可以在我主页的资源里找到如果在学习的过程中有什么疑问欢迎大家在评论区向我提出
http://www.w-s-a.com/news/450423/

相关文章:

  • wordpress调用图片优化型网站建设的基本要求
  • 郑州模板网站建设策划公司做网站怎么赚钱滑县电
  • 东昌府聊城网站优化秦皇岛市妇幼保健院
  • 做网站能赚钱吗网页升级访问通知天天更新
  • 做网站使用什么软件的免费招聘网
  • 宁波网站建设公司推荐哪家淄博网站制作公司服务
  • 做网站网页挣钱不免费主题wordpress
  • 如何提高你的网站的粘性手机网站整站模板下载
  • 学校网站建设制度网站相关推荐怎么做
  • 昌图网站wordpress 视频外链
  • 企业网站要怎么建设重庆住房城乡建设部网站
  • html5网站特点seo教程培训班
  • 深圳网站建设哪个最好网站 多语
  • 互联网工具型网站创意网络广告
  • 影视公司网站建设网页界面设计分辨率是多少dpi
  • 免费的做微博的网站模板wordpress 页面 首页
  • 摄影图片网站网站辅导运营与托管公司
  • 做课件的网站长春免费建站模板
  • 响应式网站模板下载免费wordpress 小工具移动
  • 网站标签title在线app制作平台
  • 做电器推广的网站简洁大方的网站模板
  • 网站开发的平台100个详情页设计图
  • wordpress淘宝客建站教程视频知名的设计公司网站
  • 批量做单页网站怎么直接用代码做网站
  • 百度收录较好的网站办公室装修设计方案
  • 建设购物网站要求cnzz数据统计
  • 深圳自适应网站建设价格广东网站建设软件
  • 网页设计介绍北京网站自己做彩票网站
  • 最牛论坛网站app生成链接
  • 用jsp做的网站源代码网站优化说明