您的位置:首页 > 编程语言 > Java开发

Java中的Map接口

2016-03-16 15:29 218 查看
首先区别Map和Collection:

Collection是一组对立的元素,这些元素都服从某种规则(List是存储单列数据的集合,且存储的数据是有顺序的,允许重复;而Set则不能有重复元素),Collection的每个位置只能保留一个元素;

Map是存储键和值这样的双列数据集合,但存储的数据是没有顺序的,其键不能重复,但其值是可以重复的,可以通过每一个键找到每一个对应的值;

HashMap和HashTable都完成了Map接口,实际上HashMap是HashTable轻量级实现(非线程安全的实现),二者的区别相似于ArrayList和Vector的区别:

HashMap和ArrayList都是线程不同步的,即线程不安全的,但只有一个线程访问时效率相比于另一个要高;

HashTable和Vector都是线程同步的,即多线程安全,但相比于上面两个访问效率较低。

HashMap与HashTable的关键区别在下表中列出:

父类是否线程同步KV值可否为空
HashMapAbstractMap
HashTableDictionary是(即线程安全)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: