`
sungang_1120
  • 浏览: 322219 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

JAVA集合学习(一)认识Map之LinkedHashMap

 
阅读更多

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();
	}
}

 

运行效果如下:



 

  • 大小: 93.3 KB
分享到:
评论

相关推荐

    深入Java集合学习系列

    这个学习系列将深入探讨Java集合框架的几个关键组件,包括ArrayList、HashMap以及LinkedHashMap。以下是对这些主题的详细解释: 首先,我们来看ArrayList。ArrayList是Java集合框架中的一种线性数据结构,属于List...

    java集合MAP三种遍历

    `Map`接口是Java集合框架的一部分,它提供了基于键值对的数据存储方式。常见的实现类包括`HashMap`(无序)、`LinkedHashMap`(有序)、`TreeMap`(排序)等。Map的主要方法包括`put`、`get`、`remove`、`...

    Java Map 集合类简介

    【Java Map 集合类简介】 在Java的`java.util`包中,集合类扮演着重要的角色,其中List和Map是最为常见的两种。List的实现例如ArrayList和Vector,它们都是可变大小的列表,适合存储和操作各种类型对象的序列。特别...

    java中HashMap,LinkedHashMap,TreeMap,HashTable的区别

    在Java编程语言中,`Map`接口是集合框架中的一个重要组成部分,用于存储键值对。本文将详细分析四种常用的`Map`实现类:`HashMap`, `LinkedHashMap`, `TreeMap`以及`HashTable`之间的区别。 #### 1. HashMap `...

    java集合思维导图

    Java集合框架是Java编程语言中的一个核心部分,它为数据存储和管理提供了高效且灵活的解决方案。本思维导图及总结旨在深入理解并掌握Java集合的相关概念和使用方法。 首先,我们来了解一下Java集合框架的基本构成。...

    java中map集合的用法

    Java中的Map接口是Java集合框架的重要组成部分,它用于存储键值对的数据结构,其中每个键都是唯一的,并且与一个值相关联。Map集合不同于List,因为它不维护元素的顺序,而是通过键来访问其对应的值。本文将详细介绍...

    Java实现Map集合二级联动示例

    Map集合是Java集合框架的一部分,它允许我们以键(Key)-值(Value)对的形式存储数据。在Map中,键是唯一的,而值可以重复。Java提供了多种Map接口的实现,如HashMap、TreeMap、LinkedHashMap等,它们各有不同的...

    java 集合

    首先,Java集合框架由一系列接口和实现这些接口的类组成。主要的接口有`List`、`Set`和`Queue`,它们各自代表了不同特性的数据结构。`List`接口定义了一个有序的、允许重复元素的集合,如`ArrayList`和`LinkedList`...

    Java集合排序及java集合类详解

    Java集合框架是Java编程语言中的一个核心组成部分,它为数据存储和操作提供了丰富的接口和类。在本篇中,我们将深入探讨Java集合的排序机制以及集合类的详细使用。 首先,我们来了解一下Java集合的基本分类。Java...

    Java集合框架源码分析之LinkedHashMap详解

    Java集合框架源码分析之LinkedHashMap详解 Java集合框架中的LinkedHashMap是HashMap的子类,它继承了HashMap的存储结构,但引入了一个双向链表的头结点,将所有put到LinkedHashMap的节点连接成一个双向循环链表,...

    Java很好的学习笔记集合Map,学习代码

    Java是一种广泛使用的面向对象的编程语言,其集合框架是学习Java的重要部分,特别是Map接口,它是集合中的关键组件。Map接口在Java中用于存储键值对数据,它提供了丰富的功能来管理和操作这些数据。本篇笔记集合将...

    Java集合框架常见面试题.pdf

    HashMap 是一种基于哈希表实现的 Map 集合,LinkedHashMap 是一种基于链表实现的 Map 集合,TreeMap 是一种基于树形结构实现的 Map 集合。 Iterator Iterator 是 Java 集合框架中的一种遍历集合的接口,用于遍历...

    java集合学习代码

    在这个“java集合学习代码”中,我们可能涵盖了一系列关于Java集合框架的核心概念和实践应用。 首先,Java集合框架包括接口和实现类。主要的接口有List、Set和Queue,它们都继承自Collection接口。List接口代表有序...

    java集合-LinkedHashMap的使用

    LinkedHashMap是Java中的一种特殊类型的HashMap,它保留了插入顺序,即按照元素插入的先后顺序进行排序

    java集合知识大全

    Java集合框架的设计采用了面向对象的思想,通过接口和抽象类构建了一个层次化的结构。下面是一个简化的继承关系图: - `java.util.Collection`: 所有单列集合的根接口。 - `java.util.List`: 元素有序且可重复。 ...

    Java集合框架总结

    Java集合框架是Java标准库的一部分,它提供了一系列的接口和类来存储和操作各种类型的对象集合。这些接口和类遵循一致的设计模式,使得开发人员可以方便地管理和操作数据。本文档将深入探讨Java集合框架的关键组成...

    java 集合部分笔记

    - **集合的分类**:Java集合主要分为两大类,即Collection和Map。Collection接口包括Set和List子接口,其中Set不允许重复元素,List保持元素顺序并允许重复;Map接口则用于保存键值对,实现映射关系。 2. **...

    Java集合排序及java集合类详解(Collection、List、Map、Set)

    `Collection`接口是Java集合框架的核心接口之一,它定义了集合的基本行为,包括添加、删除、查询等操作。 - **常用方法**: - `add(E e)`:向集合中添加一个元素。 - `remove(Object o)`:从集合中移除指定的元素...

Global site tag (gtag.js) - Google Analytics