【Java知识点】LinkedHashMap的使用

【Java知识点】LinkedHashMap的使用

一、知识点

(1)若工作中需要有序的HashMap,可用LinkedHashMap。

(2)LinkedHashMap:一个有序的Map集合,顺序为添加顺序,继承自HashMap;

(3)父类中的方法可正常使用,常用方法以及遍历方式与HashMap完全一致;

二、程序代码

程序使用思路:

1、创建LinkedHashMap对象

2、添加元素

3、调用entrySet方法获取到map集合所有的元素,返回值为set集合)【输出整个键值对集合】

4、遍历集合(因为Set集合 无序)只能通过迭代器或者增强for循环遍历【逐个输出键值对】

package com.atguigu.test2;

import java.util.LinkedHashMap;

import java.util.Map;
import java.util.Set;

/**
 * ClassName: TestLinkedHashMap
 * Description:
 *  LinkedHashMap一个有序的Map集合 顺序为添加顺序 继承自HashMap 所以
 *  父类中的方法 依然可以正常使用
 *
 *  常用方法 以及 遍历方式 与HashMap完全一致
 * @Author Ethan-TYQ
 * @Create 2023/8/18 15:11
 * @Version 1.0
 */
public class TestLinkedHashMap {
    public static void main(String[] args) {
        LinkedHashMap<String,Integer> map = new LinkedHashMap<>();
        //添加元素
        map.put("a",1);
        map.put("b",2);
        map.put("c",3);
        map.put("d",4);
        map.put("e",5);
        map.put("f",6);

//        调用entrySet方法获取到map集合所有的元素,返回值为set集合
        Set<Map.Entry<String,Integer>> entries = map.entrySet();

        System.out.println(entries);

        //遍历集合 Set集合 无序 只能通过迭代器或者增强for循环遍历
        for(Map.Entry<String,Integer>entry:entries){
            System.out.println(entry);
        }
    }
}

三、运行结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LinkedHashMapJava中的一个类,它继承自HashMap,并且在HashMap的基础上增加了维护插入顺序的功能。\[1\]LinkedHashMap内部使用一个双向链表来维护插入顺序,这样可以保证遍历LinkedHashMap时的顺序与插入顺序一致。\[2\]在LinkedHashMap中,每个Entry节点都包含了before和after指针,用来维护节点的先后顺序。当一个Entry被访问时,它会被移动到链表的尾部,以保证最近访问的Entry在链表的尾部。这个特性使得LinkedHashMap非常适合用于实现LRU缓存。\[2\] 在使用LinkedHashMap时,可以通过构造函数来指定初始容量、负载因子和访问顺序。如果访问顺序设置为true,那么当一个Entry被访问时,它会被移动到链表的尾部,以保证最近访问的Entry在链表的尾部。如果访问顺序设置为false,那么遍历LinkedHashMap时的顺序将会是插入顺序。\[3\] 总结来说,LinkedHashMap是一个继承自HashMap的类,它在HashMap的基础上增加了维护插入顺序的功能。通过使用双向链表来维护插入顺序,可以保证遍历LinkedHashMap时的顺序与插入顺序一致。这个特性使得LinkedHashMap在实现LRU缓存等场景中非常有用。 #### 引用[.reference_title] - *1* *2* *3* [java.util.LinkedHashMap源码解析](https://blog.csdn.net/m0_37876631/article/details/100598133)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值