Map 接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现与 HashMap 的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序通常就是将键插入到映射中的顺序(插入顺序)。注 意,如果在映射中重新插入 键,则插入顺序不受影响。(如果在调用 m.put(k, v) 前 m.containsKey(k) 返回了 true,则调用时会将键 k 重新插入到映射 m 中。)
此实现可以让客户避免未指定的、由 HashMap(及 Hashtable)所提供的通常为杂乱无章的排序工作,同时无需增加与 TreeMap 相关的成本。使用它可以生成一个与原来顺序相同的映射副本,而与原映射的实现无关:
package com.sg.map; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; public class TestLinkedHashMap { // 分别使用2个类,进行相同的数据测试 // 可以看到,HashMap的顺序是不可预测的 // 而LinkedHashMap的顺序严格按照插入顺序 public static void main(String[] args) { testMap(new HashMap()); testMap(new LinkedHashMap()); } public static void testMap(Map map){ for(int i = 98; i <= 102; i++){ map.put(i, i); } if (map instanceof HashMap) { System.out.println("HashMap最初始的值是》:"+map); } if (map instanceof LinkedHashMap) { System.out.println("LinkedHashMap最初始的值是》:"+map); } showMap(map); //尝试重复插入数据 map.put(100, 100); showMap(map); System.out.println("删除前size:"+map.size()); map.remove(100); System.out.println("删除后size:"+map.size()); map.put(100, 100); showMap(map); } public static void showMap(Map map){ Iterator iterator = map.keySet().iterator(); Object key ; while(iterator.hasNext()){ key = iterator.next(); System.out.print("key:"+key+"-->"+"value:"+map.get(key)+" "); } System.out.println(); } }
运行效果如下:
相关推荐
这个学习系列将深入探讨Java集合框架的几个关键组件,包括ArrayList、HashMap以及LinkedHashMap。以下是对这些主题的详细解释: 首先,我们来看ArrayList。ArrayList是Java集合框架中的一种线性数据结构,属于List...
`Map`接口是Java集合框架的一部分,它提供了基于键值对的数据存储方式。常见的实现类包括`HashMap`(无序)、`LinkedHashMap`(有序)、`TreeMap`(排序)等。Map的主要方法包括`put`、`get`、`remove`、`...
【Java Map 集合类简介】 在Java的`java.util`包中,集合类扮演着重要的角色,其中List和Map是最为常见的两种。List的实现例如ArrayList和Vector,它们都是可变大小的列表,适合存储和操作各种类型对象的序列。特别...
在Java编程语言中,`Map`接口是集合框架中的一个重要组成部分,用于存储键值对。本文将详细分析四种常用的`Map`实现类:`HashMap`, `LinkedHashMap`, `TreeMap`以及`HashTable`之间的区别。 #### 1. HashMap `...
Java集合框架是Java编程语言中的一个核心部分,它为数据存储和管理提供了高效且灵活的解决方案。本思维导图及总结旨在深入理解并掌握Java集合的相关概念和使用方法。 首先,我们来了解一下Java集合框架的基本构成。...
Java中的Map接口是Java集合框架的重要组成部分,它用于存储键值对的数据结构,其中每个键都是唯一的,并且与一个值相关联。Map集合不同于List,因为它不维护元素的顺序,而是通过键来访问其对应的值。本文将详细介绍...
Map集合是Java集合框架的一部分,它允许我们以键(Key)-值(Value)对的形式存储数据。在Map中,键是唯一的,而值可以重复。Java提供了多种Map接口的实现,如HashMap、TreeMap、LinkedHashMap等,它们各有不同的...
首先,Java集合框架由一系列接口和实现这些接口的类组成。主要的接口有`List`、`Set`和`Queue`,它们各自代表了不同特性的数据结构。`List`接口定义了一个有序的、允许重复元素的集合,如`ArrayList`和`LinkedList`...
Java集合框架是Java编程语言中的一个核心组成部分,它为数据存储和操作提供了丰富的接口和类。在本篇中,我们将深入探讨Java集合的排序机制以及集合类的详细使用。 首先,我们来了解一下Java集合的基本分类。Java...
Java集合框架源码分析之LinkedHashMap详解 Java集合框架中的LinkedHashMap是HashMap的子类,它继承了HashMap的存储结构,但引入了一个双向链表的头结点,将所有put到LinkedHashMap的节点连接成一个双向循环链表,...
Java是一种广泛使用的面向对象的编程语言,其集合框架是学习Java的重要部分,特别是Map接口,它是集合中的关键组件。Map接口在Java中用于存储键值对数据,它提供了丰富的功能来管理和操作这些数据。本篇笔记集合将...
HashMap 是一种基于哈希表实现的 Map 集合,LinkedHashMap 是一种基于链表实现的 Map 集合,TreeMap 是一种基于树形结构实现的 Map 集合。 Iterator Iterator 是 Java 集合框架中的一种遍历集合的接口,用于遍历...
在这个“java集合学习代码”中,我们可能涵盖了一系列关于Java集合框架的核心概念和实践应用。 首先,Java集合框架包括接口和实现类。主要的接口有List、Set和Queue,它们都继承自Collection接口。List接口代表有序...
LinkedHashMap是Java中的一种特殊类型的HashMap,它保留了插入顺序,即按照元素插入的先后顺序进行排序
Java集合框架的设计采用了面向对象的思想,通过接口和抽象类构建了一个层次化的结构。下面是一个简化的继承关系图: - `java.util.Collection`: 所有单列集合的根接口。 - `java.util.List`: 元素有序且可重复。 ...
Java集合框架是Java标准库的一部分,它提供了一系列的接口和类来存储和操作各种类型的对象集合。这些接口和类遵循一致的设计模式,使得开发人员可以方便地管理和操作数据。本文档将深入探讨Java集合框架的关键组成...
- **集合的分类**:Java集合主要分为两大类,即Collection和Map。Collection接口包括Set和List子接口,其中Set不允许重复元素,List保持元素顺序并允许重复;Map接口则用于保存键值对,实现映射关系。 2. **...
`Collection`接口是Java集合框架的核心接口之一,它定义了集合的基本行为,包括添加、删除、查询等操作。 - **常用方法**: - `add(E e)`:向集合中添加一个元素。 - `remove(Object o)`:从集合中移除指定的元素...