`

java需要关注的知识点---Vector

阅读更多
1.默认初始大小 10.
2.Vector是一个object数组,Vector的add是线程安全的。
3.Vector的方法 ensureCapacityHelper
  private void ensureCapacityHelper(int minCapacity) {
	int oldCapacity = elementData.length;
	if (minCapacity > oldCapacity) {
	    Object[] oldData = elementData;
	    int newCapacity = (capacityIncrement > 0) ?
		(oldCapacity + capacityIncrement) : (oldCapacity * 2);
    	    if (newCapacity < minCapacity) {
		newCapacity = minCapacity;
	    }
            elementData = Arrays.copyOf(elementData, newCapacity);
	}
    }


该方法在插入元素时候,判断数组长度 ,如果长度不够,进行扩容,扩容的方式:根据capacityIncrement 的值来判断(capacityIncrement 的值默认为 0, 可以通过vector的构造方法传递:“public Vector(int initialCapacity, int capacityIncrement)”),
如果capacityIncrement 的值大于0,则在原来长度的基础上加上增长基数capacityIncrement ,否则 按原来长度2倍进行扩容。

4.Vector 的 insertElementAt 方法

    public synchronized void insertElementAt(E obj, int index) {
	modCount++;
	if (index > elementCount) {
	    throw new ArrayIndexOutOfBoundsException(index
						     + " > " + elementCount);
	}
	ensureCapacityHelper(elementCount + 1);
	System.arraycopy(elementData, index, elementData, index + 1, elementCount - index);
	elementData[index] = obj;
	elementCount++;
    }

该方法使用system.arraycopy[从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束],把需要插入元素的位置上的已存在元素往后移动一位,移位后,把需要插入的元素指定到index位置。
分享到:
评论

相关推荐

    java面试笔试资料包括JAVA基础核心知识点深度学习Spring面试题等资料合集.zip

    java面试笔试资料包括JAVA基础核心知识点深度学习Spring面试题等资料合集: JAVA核心知识点整理-282页 Java与哈希算法.docx Java中Lambda表达式的使用.docx JAVA多线程之线程间的通信方式.docx Java注解详解.docx ...

    java核心知识点整理.pdf

    25 JAVA8 与元数据.................................................................................................................................25 2.4. 垃圾回收与算法 .................................

    JAVA核心知识点整理(有效)

    25 JAVA8 与元数据.................................................................................................................................25 2.4. 垃圾回收与算法 .................................

    Collections源码java-Java-Collections-Resize-Logic-Note:从源码角度分析Java中常用集合类的

    从这一篇开始,会陆续通过笔记来整理和记录之前看过的各种Java集合相关的知识点,主要包括List和Map。今天这一篇主要整理一下集合扩容相关的知识,涉及到的集合框架有:HashMap,ArrayMap,SparseArray,ArrayList,...

    java7hashmap源码-Rebuild-Java:再度重修JAVA

    虽然JAVASE看完了,但仔细一想,好像有很多似懂非懂的知识点,好像会,但仔细一想,却不会。 因此重修JAVA 着重看集合,IO,多线程 泛型例子--&gt;来自java编程思想--P397 Holder.java CovariantArrays.java ...

    Java 高级特性.doc

    象以后我门在学习JAVA 的时候,一定要对每个知识点要慢慢的消化吃透,切不能走马观花。一个知识点必须要反复的动手练习,不然很难理解其中的奥秘所在的! 5.在JAVA的程序中,我经常性的看到字符前面有@这种标志的...

    CSDN.rar_简繁体_股票 java

    Vector在Java编程中的应用 编写高级应用程序1 编写高级应用程序2 实现 Swing 的 JTables 和 Excel 间的复制和粘贴功能 实 现JAVA 的 动 态 类 载 入 机 制 使用Java实现数据报通讯过程 使用Java制作多点发送...

    动力节点_Java基础视频教程118_ArrayList与Vector

    动力节点的Java课程适合绝对零基础的观看,...每一个知识点都讲解的非常细腻,由浅入深。适合非计算机专业,想转行做Java开发的朋友,或者想让Java基础更扎实的小伙伴,配套资料下载:http://www.bjpowernode.com/?csdn

    新版Android开发教程.rar

    己的格式,回避掉需要付给 SUN 有关 JAVA 的授权费用。 对手机制造者的影响 � Android 是款开源的移动计算软件平台,组建了 google 主导的拥有众多产业界巨头的产业联盟,有利于 高效开发、降低成本。 � 由于是源...

    Java版水果管理系统源码-mianshi:知识点总结

    Java版水果管理系统源码 面试总结 算法题 常用算法 快慢指针 dfs bfs 二分,注意边界 dp 位运算,异或为主 最大公约数 #辗转相除法 int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); } three sum class ...

    Java版水果管理系统源码-BAT-Java:Java课堂笔记、代码、java核心知识点梳理、java笔试面试资料

    Java版水果管理系统源码 JAVA 关键字 void byte int long char short float double String StringBuffer StringBuilder Array Collection Collections List ArrayList LinkedList Vector Set HashMap TreeMap ...

    JAVA面试题最全集

    一、Java基础知识 1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入...

    Java并发编程相关源码集 包括多任务线程,线程池等.rar

    Java并发编程常见知识点源码集锦,涉及到对象锁,Executors多任务线程框架,线程池等示例,列出一些源码包中包括的内容:  volatile关键字的非原子性、volatile关键字的使用、AtomicInteger原子性操作、线程安全小...

    疯狂JAVA讲义

    5.8.1 使用继承的注意点 155 5.8.2 利用组合实现复用 156 学生提问:使用组合关系来实现复用时,需要创建两个Animal对象,是不是意味着使用组合关系时系统开销更大? 159 5.9 初始化块 159 5.9.1 使用初始化块 ...

    JavaFamily:【Java面试+Java学习指南】 一份涵盖大部分Java程序员所需要掌握的核心知识

    我会从下图中的知识点去写这个系列,很多细节的点,可能想得不是很完善,大家可以去获取或者加我提意见(别忘记Star哟)。 原创文章每周最少两篇,公众号首发文章,首发视频,比博客早一到两篇。 目录(善用Ctrl+F) 注 ...

    java 面试题 总结

    JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用...

    Java-Interview:此项目为 Java 面试的汇总,多数是一些 Java 基础知识、底层原理、算法详解。也有上层应用设计,其中不乏一些大厂面试真题

    Java 知识点,继续完善中。 多数是一些 Java 基础知识、底层原理、算法详解。也有上层应用设计,其中不乏一些大厂面试真题。 如果对你有帮助请点下 Star,有疑问欢迎提 ,有好的想法请提 。 常用集合 ArrayList/...

    基于javatcpsocket通信的拆包和装包源码-all-in-one:知识点总结

    基于java tcp socket通信的拆包和装包源码 基础 集合 List集合是有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问,查找元素效率高,插入删除效率低。 Set集合是无序集合,集合中的元素不...

    java-interview

    Java 知识点,继续完善中。 多数是一些 Java 基础知识、底层原理、算法详解。也有上层应用设计,其中不乏一些大厂面试真题。 如果对你有帮助请点下 Star,有疑问欢迎提 ,有好的想法请提 。 常用集合 ArrayList/...

    ElasticSearch5.2全网最全技术视频

    (2)包含市面上几乎没有的所有Elasticsearch高级知识点:包含地理位置搜索与聚合分析,term vector,suggester search,搜索模板定制,query执行剖析,数十种最全面的聚合分析,span query,shard分配定制,es插件...

Global site tag (gtag.js) - Google Analytics