前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >菜鸟的进阶之路:Java集合框架

菜鸟的进阶之路:Java集合框架

作者头像
乱敲代码
发布2019-06-03 14:46:44
6360
发布2019-06-03 14:46:44
举报
文章被收录于专栏:Java系列文章Java系列文章

小菜鸟

大菜鸟。Java中的集合框架有哪些?

在java.util 包里,包含了 Collection、List、Set、Map、SortedMap 等接口这些接口的实现类有 LinkedList、TreeSet、ArrayList、HashMap 等。除了这些数据结构,java.util 包还提供了 Date、GregorianCalender、StringTokenizer、Random 这样的工具类。

大菜鸟

小菜鸟

那他们是怎么分类的呢?

分类的话你可以看下面的分类图

(源网络,侵删)

大菜鸟

接口:Collection、List、Map 组成了集合框架中所有具体实现类的接口,它们定义了子类必须实现的方法,非常好记。比如向集合添加元素,会用到 Collection 中定义的 add() 方法

大菜鸟

实现:所有实现了上述3个接口的类,都被称作集合框架,实际上就是数据结构。比如 LinkedList、TreeSet 等

大菜鸟

算法:集合框架提供了很多可以直接调用的算法,比如求最大最小值、排序、填充等

大菜鸟

小菜鸟

懂了,那他们有什么优缺点吗?

常用的几个集合的话有

ArrayList底层数据结构是数组,查询快,增删慢线程不安全,效率高

Vector底层数据结构是数组,查询快,增删慢线程安全,效率低LinkedList

底层数据结构是链表,查询慢,增删快线程不安全,效率高HashSet底层数据结构是哈希表。

哈希表依赖两个方法:hashCode()和equals()执行顺序:首先判断hashCode()值是否相同是:继续执行equals(),看其返回值是true:说明元素重复,不添加是false:就直接添加到集合否:就直接添加到集合

大菜鸟

HashMap

底层数据结构是哈希表。线程不安全,效率高

哈希表依赖两个方法:hashCode()和equals()执行顺序:首先判断hashCode()值是否相同是:继续执行equals(),看其返回值是true:说元素重复,不添加是false:就直接添加到集合否:就直接添加到集合最终:自动生成hashCode()和equals()即可LinkedHashMap

底层数据结构由链表和哈希表组成。由链表证元素有序。由哈希表保证元素唯一。Hashtable底层数据结构是哈希表。线程安全,效率低

哈希表依赖两个方法:hashCode()和equals()执行顺序:首先判断hashCode()值是否相同

是:继续执行equals(),看其返回值是true:说明元素重复,不添加是false:就直接添加到集合

否:就直接添加到集合

大菜鸟

小菜鸟

原来有这么多区别啊,学到了。

其实还有更多更多呢。这个是体系图

大菜鸟

小菜鸟

OK

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乱敲代码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档