Java Vector 源码分析
文章平均质量分 84
源码分析
西二旗王员外
我的个人笔记,如果有幸对您有帮助,欢迎点赞…………
展开
-
Java之Vector源码分析(第七篇:遍历元素)
(注意:本文基于JDK1.8)前言 任何一个容器类对象用于持有元素后,总是需要遍历元素的,即挨个去访问每个元素1次,而遍历元素,除了常规的依赖于数组对象的下标之外,更常用的是封装好的迭代器,今天就来学习Vector中的迭代器是如何设计的,与迭代器相关的方法有:iterator()listIterator()listIterator(int index)3个Vector中的定义的方法,均会返回一个迭代器对象……简单说说这3个方法的来历iterator()方法的来历...原创 2021-05-14 23:21:31 · 322 阅读 · 0 评论 -
Java之Vector源码分析(第六篇:查找元素)
(注意:本文基于JDK1.8)前言 元素在内存中存储着,为了使用的话,我们总需要查找元素,今天一起学习Vector提供了哪些查找元素的方法 除了获取一个元素,查找元素的下标,检查是否包含某个元素,我把它们都归结为查找元素,不过本文不涉及迭代器中的查找元素,以及遍历元素工作,一起逐个学习一下吧……get(int)方法分析 public synchronized E get(int index) { if (index >...原创 2021-05-14 22:47:41 · 987 阅读 · 2 评论 -
Java之Vector源码分析(第五篇:修改元素)
(注意:本文基于JDK1.8)前言 增删改查,修改元素,Vector提供了3个方法,包括迭代器中的一个,不过本文只分析Vector自身的两个修改元素的方法,迭代器中的方法将单独分析set(int,E)方法分析 public synchronized E set(int index, E element) { if (index >= elementCount) throw new ArrayIndexOutOfBounds...原创 2021-05-08 22:19:31 · 1369 阅读 · 2 评论 -
Java之Vector源码分析(第四篇:删除元素)
(注意:本文基于JDK1.8)前言 包括迭代器中的remove()方法,以及删除单个元素、删除多个元素、删除所有元素等等的方法,Vector中共计9个对外API用于删除元素,今天就分析一下所有的删除方法是如何实现的。remove(int)方法分析 public synchronized E remove(int index) { modCount++; if (index >= elementCount) ...原创 2021-05-08 21:54:03 · 1000 阅读 · 1 评论 -
Java之Vector源码分析(第三篇:添加元素)
(注意:本文基于JDK1.8)前言 算上迭代器的add()方法,一共有7个添加元素的方法,5个添加单个元素的方法,2个添加多个元素的方法,接下来就一起分析它们的实现……Vector是一个线程安全的容器类,它的添加功能是如何做到线程安全的呢?add(E)方法分析 public synchronized boolean add(E e) { modCount++; ensureCapacityHelper(elementCount...原创 2021-03-30 23:55:58 · 891 阅读 · 0 评论 -
Java之Vector源码分析(第二篇:创建对象)
(注意:本文基于JDK1.8)Vector是线程安全的动态数组类,提供了四个创建对象的方式0、无参数的构造方法 public Vector() { this(10); }创建一个空的Vector对象(未持有元素),本构造方法的内部会将数字10传入到一个参数的构造方法中(见本文1号知识点),数字10代表的是Vector对象持有的数组对象的容量1、接受一个int参数的构造方法 public Vector(int initialCa...原创 2021-02-07 00:15:59 · 362 阅读 · 0 评论 -
Java之Vector源码分析(第一篇:初步了解)
0、与ArrayList不同,Vector中的操作是线程安全的,除此之外, 它俩超级像1、Vector的增删改查等实例方法,均加了synchronized,意味着同一时刻一个Vector对象的方法,只能有一个线程访问,其他线程只能处于阻塞状态,等待对象锁,这样就保证了Vector的线程安全2、线程安全版的ArrayList,就是Vector!!!还是老大哥,JDK1.0就有了,...原创 2020-05-15 11:40:50 · 286 阅读 · 0 评论