java Map集合类

---恢复内容开始---

Map提供了一个更通用的元素存储方法,Map集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。

了解Map接口和方法

Map构建

Map更新方法:可以更改Map内容,

clear()从Map中删除所有的映射

remove(Object key)从Map中删除键和关联的值

put(Object key,Object  value)将指定值与指定键相关联

putAll(Map t)将指定Map中的所有映射复制到此Map

HashMap:

HashMap是基于哈希表的Map接口的实现,以key-value的形式存在,在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来计算key-value的位置

1.定义:

HashMap实现了Map接口,继承AbstractMap,其中Map接口定义了键映射到值的规则,而AbstractMap类提供Map接口的骨干实现

public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>,Cloneable,Serializable

2构造函数:

HashMap提供了三个构造函数:

HashMap():构造一个具有默认初始容量(16)和默认加载因子(0.75)的空HashMap

HashMap(int initialCapacity):构造一个带指定初始容量和默认加载因子(0.75)的空HashMap

HashMap(int initialCapacity,float loadFactor):构造一个带指定初始容量和加载因子的空HashMap

初始容量,加载因子,这两个参数是影响HashMap性能的重要参数,其中容量表示哈希表中桶的数量,初始容量是创建哈希表时的容量,加载因子是哈希表在其容量自动增加之前可以达到多满的一种尺度,他衡量的是一个散列表的空间的使用程度,负载因子越大表示散列表的装填程度越高,

3数据结构:

在java中最常用的两种结构是数组和模拟指针(引用),几乎所有的数据结构都可以利用这两种来组合实现,HashMap是一个“链表散列”,如下是他的数据结构

从上图可以看出HashMap底层实现的还是数组,只是数组的每一项都是一条链,其中参数initialCapacity就代表了该数组的长度

4存储实现:

4.HashMap
  在存储键值对的时候, 使用哈希算法对键对象去重复, 效率高, 没有顺序.
  当存储一个键值对的时候, 先调用键对象的hashCode()方法计算一个哈希值, 在集合中查找是否有哈希值相同键对象.
   如果没有哈希值相同的键对象, 直接将键值对存入.
   如果有哈希值相同键对象, 则和哈希值相同的键对象进行equals()比较.
    比较结果为false就存入键值对.
    比较结果为true则用新的值覆盖旧的值.

时间: 2024-08-04 06:12:15

java Map集合类的相关文章

JAVA Map集合类简介

了解最常用的集合类型之一 Map 的基础知识以及如何针对您应用程序特有的数据优化 Map. 本文相关下载: · Jack 的 HashMap 测试· Oracle JDeveloper 10g java.util 中的集合类包含 Java 中某些最常用的类.最常用的集合类是 List 和 Map.List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建.存储和操作任何类型对象元素列表.List 适用于按数值索引访问元素的情形. Map 提供了一个更通用的

[Java] Map 集合类简介

Map 的基础知识以及如何针对您应用程序特有的数据优化 Map. java.util 中的集合类包含 Java 中某些最常用的类.最常用的集合类是 List 和 Map.List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建.存储和操作任何类型对象元素列表.List 适用于按数值索引访问元素的情形. Map 提供了一个更通用的元素存储方法.Map 集合类用于存储元素对(称作"键"和"值"),其中每个键映射到一个值.从概念上

JavaScript中模拟实现Java的集合类Map的常用方法

JavaScript中模拟实现Java的集合类Map的常用方法 (function Map(){ var size = 0, map = {}, strundefined; function MapCache() { } MapCache.prototype.put = function (key, value){ if ( key === null || key === undefined){ throw new Error(" null or undefined is not a illeg

Java:集合类的区别详解

Java中集合类的区别 Array是数组,不在集合框架范畴之内,一旦选定了,它的容量大小就不能改变了,所以通常在编程中不选用数组来存放. 集合 : 集合对象:用于管理其他若干对象的对象 数组:长度不可变 List: 有顺序的,元素可以重复 遍历:for .迭代 排序:Comparable Comparator Collections.sort() ArrayList:底层用数组实现的List 特点:查询效率高,增删效率低 轻量级 线程不安全 LinkedList:底层用双向循环链表 实现的Lis

Java map简介

了解最常用的集合类型之一 Map 的基础知识以及如何针对您应用程序特有的数据优化 Map. 本文相关下载: · Jack 的 HashMap 测试· Oracle JDeveloper 10g java.util 中的集合类包含 Java 中某些最常用的类.最常用的集合类是 List 和 Map.List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建.存储和操作任何类型对象元素列表.List 适用于按数值索引访问元素的情形. Map 提供了一个更通用的

Java Map 简介

AbstractMap, Attributes, AuthProvider, ConcurrentHashMap, ConcurrentSkipListMap, EnumMap, HashMap, Hashtable, IdentityHashMap, LinkedHashMap, PrinterStateReasons, Properties, Provider, RenderingHints, SimpleBindings, TabularDataSupport, TreeMap, UIDe

[Java] MAP、LIST、SET集合解析

在JAVA的util包中有两个所有集合的父接口Collection和Map,它们的父子关系: java.util        +Collection 这个接口extends自 --java.lang.Iterable接口           +List 接口               -ArrayList 类              -LinkedList 类              -Vector 类     此类是实现同步的 +Queue 接口              +不常用,在

java.map使用

Map以按键/数值对的形式存储数据,和数组非常相似,在数组中存在的索引,它们本身也是对象.       Map的接口       Map---实现Map       Map.Entry--Map的内部类,描述Map中的按键/数值对.       SortedMap---扩展Map,使按键保持升序排列           关于怎么使用,一般是选择Map的子类,而不直接用Map类.       下面以HashMap为例.       public     static     void     ma

首先java中集合类主要有两大分支

本文仅分析部分原理和集合类的特点,不分析源码,旨在对java的集合类有一个整体的认识,理解各个不同类的关联和区别,让大家在不同的环境下学会选择不同的类来处理. Java中的集合类包含的内容很多而且很重要,很多数据的存储和处理(排序,去重,筛选等)都需要通过集合类来完成. 首先java中集合类主要有两大分支: (1)Collection (2)Map 先看它们的类图: (1)Collection Collection (2)Map Map 可以看到它们之间的关系纷繁复杂,如果不系统的学习一下,还真