笼中雀_食牛之气

1.集合Arraylist列表扩容机制,

数据结构和源码

ArrayList集合特点 :有序(插入顺序) 可重复 允许null元素 线程不安全 扩容1.5倍

增删改查效率:

查询 修改 效率高

删除 和 添加(需要扩容的情况) 效率低

数据结构 : 数组

源代码

关于构造方法:

当我们调用ArrayList无参构造方法 初始化了一个长度为0的空数组

当我们第一次添加元素 将数组的长度改为10

懒加载思想:关于调用无参构造

JDK1.7之前 是直接帮我们初始化一个长度为10的数组

JDK1.8开始 初始化了一个长度为0的空数组 直到我们第一次添加元素 才将数组的长度改为10

这种思想称之为懒加载思想 即不是立即加载 而是等待用的时候再临时加载

关于集合扩容:

第一次扩容 当我们添加第一个元素 数组扩容为10

第二次扩容 当我们添加第11个元素 数组扩容为15 为原数组的1.5倍

关于删除元素:

先检查下标合法性

根据传入的下标 计算 移动元素的个数 size - index - 1

使用System.arraycopy复制数组 将指定下标后一位的元素统一往前移动一位

最后一位置空 赋值为null

关于clear

遍历集合 将集合中的每个元素都赋值为null 等待GC回收没有引用指向的对象

2 Vector

2.1 常用方法

Vector常用方法:

add(Object obj):添加在列表的末尾

add(int index,Object):指定位置添加元素

remove(int index):根据指定下标删除元素

set(int index,Object obj):修改元素

get(int index):获取元素

size():获取元素个数

isEmpty() :判断集合是否为空

clear() :清空集合

LinkedList

3.1 常用方法

Collection

Deque Queue List

LinkedList 常用方法:除了跟ArrayList相同的增删改查方法之外 还单独提供了用于操作头部和尾部的方法

add(Object obj):添加在列表的末尾

add(int index,Object):指定位置添加元素

addFirst() : 添加在链表的头部

addLast():添加在链表的尾部

remove(int index):根据指定下标删除元素

removeFirst() 删除链表头部

removeLast() 删除链表尾部

set(int index,Object obj):修改元素

get(int index):获取元素

getFirst() 获取链表头部

getLast() 获取链表尾部

size():获取元素个数

isEmpty() :判断集合是否为空

clear() :清空集合

4. Map接口

4.1 HashMap

4.1.1 常用方法

Map接口

HashMap 常用方法:

put(Object key,Object value) 添加键值对信息

remove(Object key) : 根据键删除键值对

replace(Object key,Object value) 修改 替换

get(Object key) 根据键获取值

clear() 清空集合

isEmpty() 判断集合是否为空

size() 获取集合元素个数

keySet() 获取所有的键

values() 获取所有的值

entrySet() 获取所有的键值对的组合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值