java集合

集合/容器

容器--数组

数组特点:

一组数据类型相同的元素集合

创建数组时,必须给定长度,而且一旦创建长度后就不能变

一旦数组装满元素,需要创建一个新的数组,将元素复制过去

缺点:

不方便:判断是否装满了,如果装满了,数组复制

如果我们从数组中间删除一个元素或者添加一个元素,需要移动后面的元素。

java中为了解决数据单一的情况,java就提供了许多不同结构的集合类,让我们可以根据不同的场景进行数据存储选择。

提供了数据实现的集合,链表实现的集合,哈希结构,树结构......

让java程序员使用起来就非常方便。

集合

单列集合:一次就放进去一个值(对象)

Collection接口,定义了单列集合共有的方法

        List:可以有重复元素

                ArrayList 数组列表

                        底层有一个数组,可以动态扩展数组长度,并提供一个一系列方法操作。

                        查询 快;中间增加、删除 慢

                LinkedList 链表列表

                        底层是一个链表结构

                        查询 慢;增加、删除 快

        Vector 数组列表 线程安全的

Set:不可以有重复元素

        HashSet

                元素是无序的 通过hashcode和equals方法判断元素是否重复

        TreeSet

                可以排序 实现Comparable接口,重写comparableTo()判断大小以及是否重复

双列集合:键 值

Map接口,数据存储是"键:值"的形式存储键不能重复的,值可以重复通过键可以找到值一个键只能映射到一个值

        HashMap

                键是无序的HashMap可以存储一个为null键,多个为null的值

        HashMap底层原理:

        TreeMap

                键可以排序键元素类型必须实现Comparable接口,重写comparableTo()

        Hashtable

                底层实现也是用到key的哈希值,计算位置判断元素是否重复方法上都添加了synchronized锁Hashtable中不能存储为null的键和为null的值

结构图:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值