博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Map集合
阅读量:6950 次
发布时间:2019-06-27

本文共 1240 字,大约阅读时间需要 4 分钟。

Map集合的特点

1)Map集合可以一次性存储两个对象;

2)在Map集合中保存的key和value这样的具备一定对应关系的一组(一对)数据,Map集合中存储的是两个对象的对应关系(映射关系)。[ key-value映射关系 ];

3)Map集合中的key必须保证唯一(存储的key元素不能重复,value可以重复,但是一个key只能对应一个value);

4)Map集合中的key和value属于一一对应关系(一个key只能对应一个value)

Map和Collection的区别

1)Map中键唯一,值没有要求。Collection中只有Set体系要求元素唯一;

2)Map的数据结构针对键而言,Collection的数据结构针对元素而言;

3)Map是双列集合顶级接口,Collection是单列集合顶级接口,他们两个分别是两种集合的顶级接口,之间没有必然的联系;(Collection集合中只能存储一个对象元素,称为单列集合。Map集合中其实存储的是两个单列集合,称为双列集合。)

Map接口下有2个实现类:

HashMap 特点:

1)HashMap底层是哈希表;

2)键唯一,要保证键唯一,所以底层的哈希表主要作用在key上。存在HashMap的键位置的对象所属类必须复写hashCode和equals函数,而

存在value位置的对象所属的类可以不复写hashCode和equals函数;

3)存取无序;

4)线程不安全,所以效率高;

补充:由于HashMap底层是哈希表,而HashMap集合上面的键又是保存在哈希表中的。所以根据哈希表的特点,保存在HashMap键的位置上数据都要复写hashCode()和equals()函数,这样才能保证key值唯一和存取无序。

HashMap集合中的所有方法全部来自于Map接口,对Map接口中的方法做了全部的实现。

LinkedHashMap集合

特点:

       1)存取有序;链表

       2)元素唯一;哈希表

Hashtable集合

Hashtable:它是JDK1.0版本中提供的一个双列集合,Hashtable不允许null。它后期被HashMap代替。它的使用和HashMap一致。Hashtable是安全的,但是效率低。HashMap不安全,效率高。

Map总结

Map

       |--HashMap  存储无序

              |-- LinkedHashMap 存储有序

如何选择Map?

           是否需要存储有序呢?

    存储无序:HashMap

              存储有序:LinkedHashMap

面试题:HashMap和Hashtable的区别?

       联系:

       底层都是哈希表结构,所以键唯一,存取无序。

区别:

       A:HashMap可以允许null,Hashtable不允许null

       B:HashMap线程不安全,所以效率高,Hashtable线程安全,所以效率低

转载于:https://www.cnblogs.com/sueyyyy/p/9338833.html

你可能感兴趣的文章
Build SSH for Development on Windows Subsystem for Linux
查看>>
学习:数学----容斥原理
查看>>
WebSite And WebApplication
查看>>
Georgia Tech Online Master of Science in Computer Science 项目经验分享
查看>>
字王珐琅体系列,初稿ok
查看>>
浏览网上资源,了解编译原理就是什么?学习编译原理有什么好处?不学有什么损失?如何学习编译原理?...
查看>>
LeetCode 226. Invert Binary Tree
查看>>
空虚、寂寞、无聊
查看>>
基础学习笔记之opencv(1):opencv中facedetect例子浅析
查看>>
JS中属性/方法调用
查看>>
iOS 7 需要再和 Android 比什么
查看>>
8-Images
查看>>
Python字节码与解释器学习
查看>>
面试题
查看>>
PYTHON-函数对象,嵌套,名称空间与作用域,闭包函数
查看>>
使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程(一)
查看>>
PHP 无限极分类
查看>>
Unity3D对象池
查看>>
KMS服务器激活Windows和Office2013EnterprisePlus
查看>>
service()、dopost()、doget()的区别
查看>>