Java集合框架
Posted 云--澈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java集合框架相关的知识,希望对你有一定的参考价值。
Java完整容器分类图
(图片来源:)
点线框代表接口,实线框代表普通的(具体的)类,空心白箭头的点线表示一个特定的类实现了一个接口,实心黑箭头表示某个类可以生成箭头所指向类的对象。
ArrayList与LinkedList的区别
ArrayList的底层数据结构是数组,它擅长于随机访问元素,使用下标查找元素的时间复杂度是O(1),但是在ArrayList的中间插入和移除元素时比较慢。
LinkedList的底层数据结构是双向循环链表,不支持随机访问,使用下标查找元素的时间复杂度是O(n),但是在LinkedList中间进行插入和删除代价花费较小,速度比ArrayList快。(注:具体的问题,请具体分析,不一定LinkedList快)
Set
Set(interface):存入set的元素必须是唯一的,加入Set的元素必须定义equals方法以确保对象的唯一性,Set接口不保证维护元素的次序。
*HashSet(默认选择):为快速查找而设计的Set。存入HashSet的元素必须定义hashCode()。
TreeSet:保持次序的Set,底层为树结构。使用它可以从Set中提取有序的序列。元素必须实现Comparable接口。
LinkedHashSet:具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入次序)。元素也必须定义hashCode()方法。
待续...
以上是关于Java集合框架的主要内容,如果未能解决你的问题,请参考以下文章