自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 LinkedList源码分析(五)

## LinkedList源码分析(五) /** * 更新元素中指定下标元素 * * @param index 元素下标 * @param e 修改的元素 * @return 返回修改前的数据 */ public E set(int index, E e) { checkIndex(index); Node<E> n = node(index); E oldValue =

2021-02-21 12:25:50 37

原创 LinkedList源码分析(四)

## LinkedList源码分析(四) /** * 添加一个符合当前LinkedList泛型约束数据类型一致的元素带结婚中 * * @param e 符合LinkedList 要求的元素 * @return 添加成功返回true */ public boolean add(E e) { // 最后一个节点位置,当前元素保证成Node节点之后的存储位置 Node<E> l = last;

2021-02-21 12:24:20 47

原创 LinkedList源码分析(三)

## LinkedList源码分析(三) public class LinkedList<E> { /** * 有效元素个数 */ private int size = 0; /** * 第一个Node节点首地址 */ private Node<E> first; /** * 最后一个Node节点的首地址 */ private Node<E> last;

2021-02-21 12:22:52 63

原创 LinkedList源码分析(二)

## LinkedList源码分析(二) /** * 检查下标是否正常 * * @param index */ private void checkIndex(int index) { if (index < 0 || index >= size) { throw new IndexOutOfBoundsException("下标异常" + index); } } /**

2021-02-21 12:20:33 51

原创 LinkedList源码分析(一)

## LinkedList源码分析(一) /* LinkedList双向链表特征: 1. 存储数据,非连续空间。 2. 数据之间通过引用连接,方便遍历和使用 3. 遍历效率较低,数据非连续空间存储,需要通过引用跳转过程来完成。 4. 删除插入操作效率高,但是注意地址的转移和保存问题。 5. LinkedList链表当中的操作其实大部分都是和C语言指针一个概念 增删快: 增删快是每一个元素通过引用连接,添加元素或者删除元素,重新组建连接引用即可,效

2021-02-21 12:17:38 51

原创 ArrayList源码分析(五)

## ArrayList源码分析(五) /** * 获取当前集合中有效元素个数 * * @return 有效元素个数 */ public int size() { return size; } /** * 获取当前集合的子集合,截取范围是start <= n < end * * @param start start <= end 不得小于0 * @param end e

2021-02-21 11:58:25 63

原创 ArrayList源码分析(四)

## ArrayList源码分析(四) /** * 删除指定元素 * @param obj 删除指定的元素 * @return 删除成功返回true */ public boolean remove(Object obj) { int index = indexOf(obj); return null != remove(index); } /** * 删除指定下标元素 * @param

2021-02-21 11:57:40 41

原创 ArrayList源码分析(三)

## ArrayList源码分析(三) /** * 增加方法 */ /** * 添加元素到当前集合的末尾 * * @param e 要求是符合泛型约束的指定数据类型 * @return 添加成功返回true,否则返回false */ public boolean add(E e) { return add(size, e); } /** * 在底层数组的指定下标位置保存对应的元素

2021-02-21 11:55:47 38

原创 ArrayList源码分析(二)

## ArrayList源码分析(二) public class ArrayList<E> { /** * 准备一个底层数组,用于存储数据内容 */ private Object[] elements; /** * 初始化默认容量 */ private static final int DEFAULT_CAPACITY = 10; /** * 最大数组容量, -8是为了腾出一定的空间,保存数组的必要内容

2021-02-21 11:53:27 47

原创 ArrayList源码分析(一)

*** ArrayList源码分析(一) ** ArrayList 可变长数组 概括: ArrayList底层采用数组形式进行数据保存和处理。底层数组中为Object类型,可以存储任意类型数据。存储具体 数据类型通过创建ArrayList类对象约束,因为所有的添加操作都是通过该add和addAll方法完成的。 可变长数组是通过grow方法来进行底层数组容量扩容操作。扩容比例大约是原数组的1.5倍 ArrayList特征: 增

2021-02-21 11:47:04 62

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除