码迷,mamicode.com
首页 > 编程语言 > 详细

java容器

时间:2016-03-29 00:50:30      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:

java容器类库的简化图:

(虚线框表示接口, 实线框表示普通的类,

空心箭头表示特定的类实现了接口, 实心箭头表示某个类可以生成箭头所指的类对象)

技术分享

 

继承Collection的主要有Set 和 List.

 

List:

ArrayList   内部实现是用数组, 随机访问速度快, 删除或插入元素速度慢。

LinkedList  内部实现是用链表, 随机访问速度慢,删除和插入元素相对较快。

平时最佳的做法可能是将ArrayList作为默认首选,只有你需要使用额外的功能,或者因为经常从表中间插入或删除元素导致程序性能变差的时候,才去选择LinkedList。

 

Set:

HashSet: 为快速查找而设计,可以认为是基于哈希表的实现。 存入HashSet的元素必须定义hashCode().

LinkedHashSet: 具有HashSet的查询速度且内部使用链表维护元素的顺序(按插入的顺序,如果有访问,最近最少访问的在最前)

 

TreeSet:保持次序的Set,底层为树结构(红黑树)。使用它可以从Set提取有序的序列。元素必须实现Comparable接口或者在构造TreeSet时传入Comparator参数。

技术分享view

 

不管是散列存储还是树形存储,元素都必须实现equals()方法。虽然只有当类被放入HashSet或LinkedHashSet是hashCode()才是必须的,但是,对于良好的编程风格,应该在覆盖equals()方法时也覆盖hashCode()方法。

java容器

标签:

原文地址:http://www.cnblogs.com/zyx1314/p/5331282.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!