集合体系

本文介绍了Java集合框架的发展,从集合的由来出发,对比了数组与集合的区别,深入探讨了Collection接口及其List和Set子接口的实现类,如ArrayList、LinkedList和HashSet等。同时,文章也讲解了Map接口及其HashMap、HashTable和TreeMap等实现类的特点,强调了Map中键值对的存储规则和特性。
摘要由CSDN通过智能技术生成

1.集合的由来

数据多了存储到对象中,比如工号/姓名/年龄…存储到一个员工对象中
对象多了存储到集合中,因为不止一个员工,会有陆陆续续的新员工添加进来

2.数组与集合的区别

  • 数组长度不可变,集合长度可变
  • 数组可以存储基本数据类型,集合只能存储对象
  • 数组只能存储一种数据类型,因为数组定义的时候指定了数据类型.集合可以存储不同类型的对象

3.集合框架体系

在这里插入图片描述

Collection接口:单列集合,有两个子接口

- List接口

三个实现类
1.ArrayList集合: 底层数组
增删慢------因为数组是定长的,每次增删都要创建新的数组,所以增删慢
查询快------因为数组有索引在这里插入图片描述
2.LinkedList集合: 底层链表
增删快------每一个元素存储本身内存地址的同时还存储下一个元素的地址,在链表中增加删除元素,对链表的整体结构没有影响
查询慢------链表中的元素地址不是连续的,每次查询元素,都必须从头开始
在这里插入图片描述在这里插入图片描述在这里插入图片描述
3.Vector: 底层数组
线程安全
效率低

- Set接口

有两个实现类

1.HashSet: 底层哈希表
存储元素,无序,不可重复在这里插入图片描述
LinkedHashSet: 底层哈希表+链表,HashSet的一个子类
存储元素,有序,不可重复
2.TreeSet集合: 底层数据结构是红黑树(是一个自平衡的二叉树)
在这里插入图片描述

Map接口–双列集合

现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即java.util.Map接口。

我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图。
在这里插入图片描述
需要注意的是,Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。

有三个实现类

1.HashMap: 底层哈希表,无序
非线程安全,高效,支持null
LinkedHashMap------HashMap的一个子类,保存了记录的插入顺序
2.HashTable
线程安全,低效,不支持null
LinkedHashMap------HashMap的一个子类,保存了记录的插入顺序
2.TreeMap
能够把它保存的记录根据键排序,默认是键值的升序排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值