Map集合类用于存储元素对,一个键映射到一个值。
查看Map
如果想要查看Map,需要先获取Map的视图,有三种方式可以获取Map的视图
1.所有的键值对 entrySet()
2.所有键 keySet()
3.所有值 values()
entrySet和keySet分别返回一个Set对象,values则返回一个Collection对象,如果需要遍历,则还需要迭代这些集合元素。在entrySet、keySet、values里都有方法返回自己实现的迭代器。Set、Collection 、Iterator在使用时用的基础的Map视图,所以使用时效率会比较高,而在使用Map的toArray()方法时,需要创建副本,并对副本进行操作,所以效率方面不如前面的迭代器。
Map可以调用Map Collections.synchronizedMap(Map m),得到一个线程同步的Map
,返回的方法封装了HashMap的底层所有方法,所以在多线程的环境中也是安全的。
HashMap
HashMap本身是非线程安全的,哈希表的Map接口实现,允许null值和null键,当Key为null时,hash值为0,value放在当前链表的第一个。
HashMap 不允许重复的key,如果重复后一个value会覆盖前一个,所以HashMap里最多只能有一个键为值为null
如果HashMap里放一个集合对象那么,实际上放在value里的是它的指针,当后续对集合对象作出修改时,打印出来的对象是修改后的对象
当HashMap中的元素个数超过对象长度的0.75的时候,HashMap会自动增大一倍
HashMap默认的的长度是16,默认的负载因子是0.75,负载因子越大,查询速度越慢,负载因子越小,空间利用越高,空间利用越小,查询速度越快
HashMap是非线程安全的
两个不同对象的哈希值相等,即数据会存在一个链上
当对象o1 和 对象o2
o1.hashcode() == o2.hashcode()而且o1.equal(o2) = false的时候在HashMap里会以链表的形式存放 ,一般较少
o1.equal(o2)==true o1.hashcode一定等于o2.hashcode
o1.equal(o2)!=true o1.hashcode可能等于o2.hashcode
HashTable
HashTable是线程安全的,不允许null值为键,HashTable的默认长度是11,默认的负载因子是0.75,以后每次增长为原来的两倍,负载因子越大,查询速度越慢,负载因子越小,空间利用越高,空间利用越小,查询速度越快
分享到:
相关推荐
本主题聚焦于易语言中的面向对象编程,特别是模仿Java集合框架的List和Map接口的实现。这些数据结构在编程中扮演着核心角色,用于组织和管理数据。 首先,让我们深入了解易语言的面向对象编程概念。面向对象编程...
`Map`接口是Java集合框架的一部分,它提供了基于键值对的数据存储方式。常见的实现类包括`HashMap`(无序)、`LinkedHashMap`(有序)、`TreeMap`(排序)等。Map的主要方法包括`put`、`get`、`remove`、`...
【Java Map 集合类简介】 在Java的`java.util`包中,集合类扮演着重要的角色,其中List和Map是最为常见的两种。List的实现例如ArrayList和Vector,它们都是可变大小的列表,适合存储和操作各种类型对象的序列。特别...
Map接口则是Java集合框架的一部分,它提供了键值对的数据存储方式,方便数据的存取。将Pojo对象转换为Map,可以简化数据处理过程,尤其是在JSP页面上展示数据时,Map的灵活性更加突出。本文将详细介绍如何实现Java中...
Map集合是Java集合框架的一部分,它允许我们以键(Key)-值(Value)对的形式存储数据。在Map中,键是唯一的,而值可以重复。Java提供了多种Map接口的实现,如HashMap、TreeMap、LinkedHashMap等,它们各有不同的...
Java中的Map接口是Java集合框架的重要组成部分,它用于存储键值对的数据结构,其中每个键都是唯一的,并且与一个值相关联。Map集合不同于List,因为它不维护元素的顺序,而是通过键来访问其对应的值。本文将详细介绍...
Java集合框架是Java编程语言中的一个核心部分,它为数据存储和管理提供了高效且灵活的解决方案。本思维导图及总结旨在深入理解并掌握Java集合的相关概念和使用方法。 首先,我们来了解一下Java集合框架的基本构成。...
Java集合框架中的Map接口是Java编程中非常重要的一个部分,它提供了一种存储键值对数据的方式。在Map中,每个键(key)都是唯一的,用于标识对应的值(value),而值可以重复出现。这种数据结构广泛应用于各种场景,...
在Java编程中,XML(可扩展标记语言)是一种用于存储和传输数据的标准化格式,而Map是Java集合框架中的一个重要接口,它提供了键值对的数据结构。将XML与Map进行互转是常见的需求,特别是在处理配置文件或者进行数据...
HashMap是基于hashing的原理,我们使用put(key, value)存储对象到HashMap中,使用get(key)从HashMap中获取对象。当我们给put()方法传递键和值时,我们先对键调用hashCode()方法,返回的hashCode用于找到bucket位置来...
本文将深入探讨Java集合框架的基础知识,包括接口、类、以及它们在实际开发中的应用。 首先,Java集合框架由一系列接口和实现这些接口的类组成。主要的接口有`List`、`Set`和`Queue`,它们各自代表了不同特性的数据...
在Java集合排序方面,我们主要关注List和Map。对于List,可以使用Collections.sort()方法进行排序,这个方法默认使用元素的自然顺序,如果元素是自定义对象,需要实现Comparable接口或者提供Comparator。对于Map,...
Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构允许程序员以高效的方式处理大量数据。 ##### 1.1 容器简介 容器是Java集合框架的基础概念,它们用于存储对象的集合。容器分为...
Java 集合排序及java 集合类详解 Java 集合排序及java 集合类详解,Java...本教程详细解释了关于Java中的集合是如何实现的, 以及他们的实现原理等,涉及的部分内容:Collection , List ,Set , Map , 集合, 框架等。
Java集合排序及java集合类详解(Collection、List、Map、Set).doc
在Java编程语言中,Map接口是集合框架的重要组成部分,它提供了键值对(Key-Value)的数据存储方式。Map不是列表或数组,它允许通过键来查找和操作对应的值。本篇文章将详细介绍Map的基本用法和关键特性。 1. **...
Java集合框架是Java语言中最重要的组件之一,能够正确使用Java集合框架对于Java程序的开发具有无比的好处。本文将详细解释Java集合框架的实现原理、Collection、List、Set、Map四大类的使用方法和原理。 1. 集合...
Java集合整体讲解,其中包含了Collection,Map,Iterator和一些工具类,以及集合整体大框架