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的关键区别在下表中列出:
Collection是一组对立的元素,这些元素都服从某种规则(List是存储单列数据的集合,且存储的数据是有顺序的,允许重复;而Set则不能有重复元素),Collection的每个位置只能保留一个元素;
Map是存储键和值这样的双列数据集合,但存储的数据是没有顺序的,其键不能重复,但其值是可以重复的,可以通过每一个键找到每一个对应的值;
HashMap和HashTable都完成了Map接口,实际上HashMap是HashTable轻量级实现(非线程安全的实现),二者的区别相似于ArrayList和Vector的区别:
HashMap和ArrayList都是线程不同步的,即线程不安全的,但只有一个线程访问时效率相比于另一个要高;
HashTable和Vector都是线程同步的,即多线程安全,但相比于上面两个访问效率较低。
HashMap与HashTable的关键区别在下表中列出:
类 | 父类 | 是否线程同步 | KV值可否为空 |
HashMap | AbstractMap | 否 | 是 |
HashTable | Dictionary | 是(即线程安全) | 否 |
相关文章推荐
- Java第二次实验要求
- java.util.current的主要方法简介
- 文章标题
- 《JAVA与模式》之装饰模式
- Java中如何从一个字符串中删除指定字符
- 解决JavaMail 发送邮件javax.mail.MessagingException: 501 Syntax: HELO hostname问题
- java未解惑
- Java关闭钩子
- JAVA_桥接模式
- Java中的异常处理机制的简单原理和应用以及连接池理解
- 使用 Java 执行器实现线程池
- java.lang.OutOfMemoryError: PermGen space
- 理解java接口和抽象类
- java在文章中找出关键词
- SpringMVC学习记录2
- [疯狂Java]多线程:进程和线程的概念
- Java的string类为什么是不可变的
- java 截取小数位数
- Java高级开发工程师考纲
- Java NIO系列教程(十二) Java NIO与IO