HashMap与LinkedHashMap类型集合

简介: 【8月更文挑战第4天】`HashMap` 是基于哈希表实现的键值对存储结构,提供快速的查找、插入和删除操作,但不保证元素顺序。适用于不关心顺序且需高效操作的场景。`LinkedHashMap` 继承自 `HashMap`,保持了元素的插入或访问顺序。适合需要按特定顺序遍历元素的应用,如按添加顺序显示购物车商品。其操作效率与 `HashMap` 相近。

HashMap


HashMap 是 Java 中最常用的集合之一,它基于哈希表实现,存储键值对。


  • 特点:
  • 无序:元素的存储顺序不固定,不保证插入顺序。
  • 查找、插入和删除操作的平均时间复杂度为 O(1)。
  • 适用场景:
  • 当需要快速的查找、插入和删除操作,且不关心元素顺序时。
  • 示例代码:


HashMap<String, Integer> map = new HashMap<>();
    map.put("apple", 5);
    map.put("banana", 3);


LinkedHashMap


LinkedHashMap 继承自 HashMap,在其基础上维护了元素的插入顺序或者访问顺序。


  • 特点:
  • 有序:可以按照元素的插入顺序或者访问顺序进行遍历。
  • 查找、插入和删除操作的时间复杂度与 HashMap 类似。
  • 适用场景:
  • 当需要按照插入顺序或者访问顺序遍历元素时。
  • 示例代码(按照插入顺序):


LinkedHashMap<String, Integer> linkedMap = new LinkedHashMap<>();
    linkedMap.put("apple", 5);
    linkedMap.put("banana", 3);


  • 示例代码(按照访问顺序,需要设置参数):


LinkedHashMap<String, Integer> accessOrderMap = new LinkedHashMap<>(16, 0.75f, true);
    accessOrderMap.put("apple", 5);
    accessOrderMap.put("banana", 3);
    // 访问元素
    accessOrderMap.get("apple");


例如,在一个购物车的实现中,如果希望按照用户添加商品的顺序展示商品列表,就可以使用 LinkedHashMap;而如果只是简单地存储商品及其数量,不关心顺序,使用 HashMap 即可。

相关文章
|
1月前
|
存储
|
3月前
|
Java
Java集合-----HashMap实例
Java集合-----HashMap实例
33 5
|
2月前
|
存储 Java
Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD
Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD
|
11月前
|
存储 安全 Java
Java集合Map之HashMap常用操作
在我看来 , 链表是为了解决hash碰撞使用的一种方法 : 拉线法 , 而红黑树是为了解决&quot;拉的这个线&quot;(链表存储的元素太多)过长的话元素遍历慢的问题
52 2
|
4月前
|
存储 缓存 Rust
Rust 笔记:Rust 语言中哈希结构(哈希映射,HashMap)、集合(哈希集,HashSet)及其使用
Rust 笔记:Rust 语言中哈希结构(哈希映射,HashMap)、集合(哈希集,HashSet)及其使用
817 0
|
4月前
|
存储 算法 安全
认真学习Java集合之HashMap的实现原理
认真学习Java集合之HashMap的实现原理
61 0
认真学习Java集合之HashMap的实现原理
|
9月前
|
安全 Java 应用服务中间件
史上最全的Java容器集合之HashMap(源码解读)(二)
史上最全的Java容器集合之HashMap(源码解读)(二)
47 0
史上最全的Java容器集合之HashMap(源码解读)(二)
|
9月前
|
存储 Java 索引
史上最全的Java容器集合之HashMap(源码解读)(一)
史上最全的Java容器集合之HashMap(源码解读)(一)
49 0
|
11月前
|
JSON 数据格式
Gson转换json数据为HashMap时long类型变为double问题解决
今天再使用Gson处理json数据的时候碰到了一个问题 , 当我使用如下代码解析json数据的时候 , requestTime就变为了double类型
224 0
|
4月前
|
存储 算法 Java
【深入挖掘Java技术】「源码原理体系」盲点问题解析之HashMap工作原理全揭秘(下)
在阅读了上篇文章《【深入挖掘Java技术】「源码原理体系」盲点问题解析之HashMap工作原理全揭秘(上)》之后,相信您对HashMap的基本原理和基础结构已经有了初步的认识。接下来,我们将进一步深入探索HashMap的源码,揭示其深层次的技术细节。通过这次解析,您将更深入地理解HashMap的工作原理,掌握其核心实现。
50 0
【深入挖掘Java技术】「源码原理体系」盲点问题解析之HashMap工作原理全揭秘(下)