Java常用容器比较分析
来源:互联网 发布:免费挂机赚钱软件 编辑:程序博客网 时间:2024/06/06 11:00
容器是Java中的重要概念。容器中可以包含多个对象,每个对象作为容器中的一个元素。
继承实现关系图
通过上图可以分析出:
1)List和Set是Java.util中的两个接口,这两个接口分别继承于Collection。
2)ArrayList和LinkedList分别实现了List接口。
3)接口SortedMap实现了Map接口,TreeMap是具体类实现了SortedMap接口。
Collection:集合层次中的根接口,JDK没有提供这个接口的直接实现类。
Set:不能包含重复元素,SortedSet是一个按升序排列的元素的Set。
List是一个有序的集合,可以包含重复元素,提供了按索引访问的方式。
Map包含了Key-Value对,Map不能包含重复的Key,SortedMap是按照升序排列的Key的Map
ArrayList和LinkedList比较分析
1)ArrayList底层采用的是数组实现的。LinkedList的底层是采用双向链表实现的
2)对于删除插入操作,ArrayList中的元素要对应向前或向后移位,代价比较高。而LinkedList只要修改链接指向即可,代价比较小
3)当采用搜索操作时,采用ArrayList的比较好。LinkedList会涉及到指针移位的问题,操作起来比较麻烦。
HashSet和HashMap的关系
HashSet的底层是由HashMap实现的,当使用add方法向set中添加对象时,实际上是向底层Map的key值中添加元素,对应的value值放置的是一个Object对象,没什么作用。
HashMap的实现方式
当向HashMap中Put一个键值时,它会根据可以的hash值计算出一个位置。如果该位置还没有对象,就将对象插入到该位置。如果已经有对象存在了,就顺着Entry寻找next成员,如果链接上有对象的话,并和每个成员进行equals比较。结果为false,就将该对象放在数组中,把之前的对象链接在新插入对象的后面。
Hashtable与HashMap的比较分析
1)Hashtable是线程安全的,HashMap是线程不安全的,HashMap允许空(null)键值,因为是非线程安全的,在效率上可能高于Hashtable.
2)Hashtable中contains(Object value)和HashMap中的ContainsValue(Object value)功能相同
3)HashTable中hash数组默认大小是11,增加的方式是old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数
4)Hashtable继承于Dictionary,HashMap继承于AbstractMap
- Java常用容器比较分析
- 几种常用容器的分析与比较
- JAVA常用容器结构的简单分析
- STL常用容器比较
- STL中几种常用容器比较
- 常用 Java 静态代码分析工具的分析与比较
- 常用 Java 静态代码分析工具的分析与比较
- 常用 Java 静态代码分析工具的分析与比较
- 常用 Java 静态代码分析工具的分析与比较
- 常用 Java 静态代码分析工具的分析与比较
- 常用 Java 静态代码分析工具的分析与比较
- 常用 Java 静态代码分析工具的分析与比较
- 常用 Java 静态代码分析工具的分析与比较
- 常用Java静态代码分析工具的分析与比较
- 常用 Java 静态代码分析工具的分析与比较
- 常用 Java 静态代码分析工具的分析与比较
- 常用 Java 静态代码分析工具的分析与比较
- 常用 Java 静态代码分析工具的分析与比较
- C API Socket 连接时间服务器,并修改自己系统的时间(对时)
- problem中Project'XX'is missing required library:'[路径]\XXX.jar'解决方法
- MVN 命令记录
- _block
- hibernate继承关系的映射(single_table,class_per_table,joined)
- Java常用容器比较分析
- JVM(一)------基本结构
- CentOS 7.0,启用iptables防火墙(转)
- Eclipse中修改SVN用户名和密码方法
- 我与“百科全书”的故事---祝贺《信息通信技术百科全书》正式出版!
- SQL SERVER CDC变更数据捕获
- 【一个经典的google面试题】在浏览器中输入Google.com并且按下回车之后发生了什么?
- iOS错误:Undefined symbols for architecture arm64
- 哈尔滨在哪里有宠物袖珍猴卖的