七、Map接口

Map是一个接口,同时也属于集合中的一种,同样用来存储引用数据类型的变长的容器,用于存储具有映射关系的数据,因此Map集合中的元素是以键值对的形式存在的
key:键
value:值

注意:key和value之间存在单向一一对应的关系,【即通过一个key,就可以找到它对应的唯一的确定的value】

特点:
a、Map集合中的元素是以键值对的形式存在的,一个键只能对应一个值,不允许只有键没有值,也不允许一个键对应多个值,在同一个集合中不能出现多个相同的键
b、Map集合中的元素是按照键来排重的,不允许键重复,但是值是可以重复的【如果添加了集合已经存在的键,那么后添加的回覆盖掉之前添加的】
c、键和值都必须是引用数据类型
d、键和值都可以是null常量

1.HashMap
特点:
a、无序,
b、底层采用的数据结构是:哈希算法

总结:
HashMap和HashSet之间的区别;
HashMap HashSet
==================================================================================================
实现了Map接口 实现了Set接口
存储键值对 存储对象
通过put()方法添加元素 通过add()方法添加元素
效率高,使用键直接获取值 效率相对较低

【面试题】:HashMap的工作原理
基于哈希算法实现,通过put方法和get方法进行存取对象,当我们将键值对传递给put方法,它会调用对象的hashCode()方法来计算hashCode值,然后在内存中找到位置进行存储对象,当获取对象,通过get方法来进行获取,但是,在获取过程中或调用equals方法找到正确的键值对,然后返回值的对象

2、LinkedHashMap
特点:
a、有序的【键值对的添加的顺序和存储的顺序相同】
b、底层存数采用的数据结构是:链表

3、Hashtable
Hashtable和HashMap之间的关系就类似与Vector和ArrayList之间的关系

特点:
a、在用法上和HashMap完全相同
b、Hashtable是一个古老的集合【从JDK1.0开始就有了】
c、Hashtable是线程安全的,HashMap是线程不安全的
d、Hashtable性能是相对比较低的,不推荐使用Hashtable
e、Hashtable不允许将null作为键和值,如果试图将null作为Hashtable的键值的时候会发生空指针异常,但是HashMap是允许使用的

4、TreeMap
TreeMap是Map集合的一个实现类,同时也是SortedMap的实现类

特点:
a、有序的,排序方式:自然排序和定制排序
b、底层采用的数据结构是:二叉树【红黑树】

时间: 2024-10-10 02:51:00

七、Map接口的相关文章

Java从零开始学二十三(集合Map接口)

一.Map接口 Collection.Set.List接口都属于单值的操作,即:每次只能操作一个对象,而Map与它们不同的是,每次操作的是一对对象,即二元偶对象,Map中的每个元素都使用key à value的形式存储在集合之中 二.常用方法 No. 方法或类 类型 描述 1 public void clear() 普通 清空Map集合 2 public boolean containsKey(Object key) 普通 判断指定的key是否存在 3 public boolean contai

Java容器之Map接口

Map 接口: 1. 实现 Map 接口的类是用来存储键-值(key-value)对: 2. Map 接口的实现类有 HashMap 和 TreeMap 等: 3. Map 类中存储的键-值对,通过键来标识,所以键值不能重复. 4. Map 接口的常用方法如下:    4.1 object put(K key, V value):将指定的值与此映射中的指定键关联(可选操作); 4.2 object get(Object key):返回指定键所映射的值: 4.3 object remove(Obj

Java集合之Map接口

Map使用键值对来存储数据,将键映射到值对象,一个映射不能包含重复的键,每一个键最多只能映射到 一个值.Map接口的具体实现类:HashMap,Hashtable,TreeMap,LinkedHashMap 1)HashMap 基于哈希表(哈希表学习地址)的Map接口实现.允许使用null值和null键,不保证映射的顺序,特 别是不保证顺序恒久不变.它除了非同步和允许使用null外,与Hashtable大致相同. HashMap实现原理: 1.HashMap默认数组大小为16,加载因子为0.75

Java集合中Map接口的使用方法

Map接口 Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value: Map中的键值对以Entry类型的对象实例形式存在: 建(key值)不可重复,value值可以重复,一个value值可以和很多key值形成对应关系,每个建最多只能映射到一个值. Map支持泛型,形式如:Map<K,V> Map中使用put(K key,V value)方法添加 HashMap类 HashMap是Map的一个重要实现类,也是最常用的,基于哈希表实现

Map接口及其子类

Map接口操作的是一对对象,即二元偶对象,Map接口中的每个元素都使用"key--value"的形式存储在集合中. SortedMap接口是排序接口,只要是实现了此接口的子类,都属于排序的子类.TreeMap就是此接口的一个子类 Map接口常用的子类: HashMap:无序存放,新的操作类,key不允许重复 Hahtable:无序存放,旧的操作类,key不允许重复 TreeMap:可以排序的Map集合,按集合的key排序,key不允许重复 WeakHashMap:弱引用的Map集合,清

JAVA集合详解(Collection和Map接口)

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

java map接口

Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value: 1.Map中的键值对以Entry类型的对象实例形式存在: 2.建(key值)不可重复,value值可以重复,一个value值可以和很多key值形成对应关系,每个建最多只能映射到一个值. 3.Map支持泛型,形式如:Map<K,V> 4.map 接口和c# 中的Dictionary相近 一.基本用法 Map<String,String>map=new HashMa

Java集合框架总结(5)——Map接口的使用

Java集合框架总结(5)--Map接口的使用 Map用于保存具有映射关系的数据(key-vlaue).Map的key不允许重复,即同一个Map对象的任何两个key通过equals方法比较总是返回false Map中包含了一个keySet()方法,用于返回Map所以key组成的Set集合. Map集合与Set集合元素的存储形式很像,如Set接口下有HashSet.LinkedHashSet.SortedSet(接口).TreeSet.EnumSet等实现类和子接口,而Map接口下则有HashMa

Map接口使用注意事项

1,Map接口对象本身不能直接使用迭代进行输出的.因为map每个位置存放的是一对值. 而iterator每次只能找到一个值.如果一定要迭代输出,可以通过以下步骤.: 但是,Map接口只作为查找使用,输出操作毕竟属于少数. package 类集; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.WeakHashMap;