精华内容
下载资源
问答
  • java的vector文档_Vector

    2021-03-14 12:46:25
    Vector在 Java提高篇(二一)—–ArrayList 、Java 提高篇(二二)—LinkedList ,详细讲解了 ArrayList、linkedList 的原理和实现过程,对于 List 接口这里还介绍一个它的实现类 VectorVector 类可以实现可增长的对象...

    Vector

    在 Java提高篇(二一)—–ArrayList 、Java 提高篇(二二)—LinkedList ,详细讲解了 ArrayList、linkedList 的原理和实现过程,对于 List 接口这里还介绍一个它的实现类 Vector,Vector 类可以实现可增长的对象数组。

    一、Vector 简介

    Vector 可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。不过,Vector 的大小是可以增加或者减小的,以便适应创建 Vector 后进行添加或者删除操作。

    Vector 实现 List 接口,继承 AbstractList 类,所以我们可以将其看做队列,支持相关的添加、删除、修改、遍历等功能。

    Vector 实现 RandmoAccess 接口,即提供了随机访问功能,提供提供快速访问功能。在 Vector 我们可以直接访问元素。

    Vector 实现了 Cloneable 接口,支持 clone() 方法,可以被克隆。

    public class Vector

    extends AbstractList

    implements List, RandomAccess, Cloneable, java.io.Serializable

    Vector 提供了四个构造函数:

    /**

    * 构造一个空向量,使其内部数据数组的大小为 10,其标准容量增量为零。

    */

    public Vector() {

    this(10);

    }

    /**

    * 构造一个包含指定 collection 中的元素的向量,这些元素按其 collection 的迭代器返回元素的顺序排列。

    */

    public Vector(Collection extends E> c) {

    elementData = c.toArray();

    elementCount = elementData.length;

    // c.toArray might (incorrectly) not return Object[] (see 6260652)

    if (elementData.getClass() != Object[].class)

    elementData = Arrays.copyOf(elementData, elementCount,

    Object[].class);

    }

    /**

    * 使用指定的初始容量和等于零的容量增量构造一个空向量。

    */

    public Vector(int initialCapacity) {

    this(initialCapacity, 0);

    }

    /**

    * 使用指定的初始容量和容量增量构造一个空的向量。

    */

    public Vector(int initialCapacity, int capacityIncrement) {

    super();

    if (initialCapacity < 0)

    throw new IllegalArgumentException("Illegal Capacity: "+

    initialCapacity);

    this.elementData = new Object [initialCapacity];

    this.capacityIncrement = capacityIncrement;

    }

    在成员变量方面,Vector 提供了 elementData , elementCount, capacityIncrement 三个成员变量。其中

    elementData :”Object[] 类型的数组”,它保存了 Vector 中的元素。按照 Vector 的设计 elementData 为一个动态数组,可以随着元素的增加而动态的增长,其具体的增加方式后面提到(ensureCapacity 方法)。如果在初始化 Vector 时没有指定容器大小,则使用默认大小为 10.

    elementCount:Vector 对象中的有效组件数。

    capacityIncrement:向量的大小大于其容量时,容量自动增加的量。如果在创建 Vector 时,指定了 capacityIncrement 的大小;则,每次当 Vector 中动态数组容量增加时>,增加的大小都是 capacityIncrement。如果容量的增量小于等于零,则每次需要增大容量时,向量的容量将增大一倍。

    同时 Vector 是线程安全的!

    二、源码解析

    对于源码的解析,LZ 在这里只就增加(add)删除(remove)两个方法进行讲解。

    2.1增加:add(E e)

    add(E e):将指定元素添加到此向量的末尾。

    public synchronized boolean add(E e) {

    modCount++;

    ensureCapacityHelper(elementCount + 1); //确认容器大小,如果操作容量则扩容操作

    elementData[elementCount++] = e; //将e元素添加至末尾

    return true;

    }

    这个方法相对而言比较简单,具体过程就是先确认容器的大小,看是否需要进行扩容操作,然后将E元素添加到此向量的末尾。

    private void ensureCapacityHelper(int minCapacity) {

    //如果

    if (minCapacity - elementData.length > 0)

    grow(minCapacity);

    }

    /**

    * 进行扩容操作

    * 如果此向量的当前容量小于minCapacity,则通过将其内部数组替换为一个较大的数组俩增加其容量。

    * 新数据数组的大小姜维原来的大小 + capacityIncrement,

    * 除非 capacityIncrement 的值小于等于零,在后一种情况下,新的容量将为原来容量的两倍,不过,如果此大小仍然小于 minCapacity,则新容量将为 minCapacity。

    */

    private void grow(int minCapacity) {

    int oldCapacity = elementData.length; //当前容器大小

    /*

    * 新容器大小

    * 若容量增量系数(capacityIncrement) > 0,则将容器大小增加到capacityIncrement

    * 否则将容量增加一倍

    */

    int newCapacity = oldCapacity + ((capacityIncrement > 0) ?

    capacityIncrement : oldCapacity);

    if (newCapacity - minCapacity < 0)

    newCapacity = minCapacity;

    if (newCapacity - MAX_ARRAY_SIZE > 0)

    newCapacity = hugeCapacity(minCapacity);

    elementData = Arrays.copyOf(elementData, newCapacity);

    }

    /**

    * 判断是否超出最大范围

    * MAX_ARRAY_SIZE:private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;

    */

    private static int hugeCapacity(int minCapacity) {

    if (minCapacity < 0)

    throw new OutOfMemoryError();

    return (minCapacity > MAX_ARRAY_SIZE) ? Integer.MAX_VALUE : MAX_ARRAY_SIZE;

    }

    对于 Vector 整个的扩容过程,就是根据 capacityIncrement 确认扩容大小的,若 capacityIncrement <= 0 则扩大一倍,否则扩大至 capacityIncrement 。当然这个容量的最大范围为 Integer.MAX_VALUE即,2^32 – 1,所以 Vector 并不是可以无限扩充的。

    2.2、remove(Object o)

    /**

    * 从Vector容器中移除指定元素E

    */

    public boolean remove(Object o) {

    return removeElement(o);

    }

    public synchronized boolean removeElement(Object obj) {

    modCount++;

    int i = indexOf(obj); //计算obj在Vector容器中位置

    if (i >= 0) {

    removeElementAt(i); //移除

    return true;

    }

    return false;

    }

    public synchronized void removeElementAt(int index) {

    modCount++; //修改次数+1

    if (index >= elementCount) { //删除位置大于容器有效大小

    throw new ArrayIndexOutOfBoundsException(index + " >= " + elementCount);

    }

    else if (index < 0) { //位置小于 < 0

    throw new ArrayIndexOutOfBoundsException(index);

    }

    int j = elementCount - index - 1;

    if (j > 0) {

    //从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。

    //也就是数组元素从j位置往前移

    System.arraycopy(elementData, index + 1, elementData, index, j);

    }

    elementCount--; //容器中有效组件个数 - 1

    elementData[elementCount] = null; //将向量的末尾位置设置为null

    }

    因为 Vector 底层是使用数组实现的,所以它的操作都是对数组进行操作,只不过其是可以随着元素的增加而动态的改变容量大小,其实现方法是是使用 Arrays.copyOf 方法将旧数据拷贝到一个新的大容量数组中。 Vector 的整个内部实现都比较简单,这里就不在重述了。

    三、Vector 遍历

    Vector 支持 4 种遍历方式。

    3.1、随机访问

    因为 Vector 实现了 RandmoAccess 接口,可以通过下标来进行随机访问。

    for(int i = 0 ; i < vec.size() ; i++){

    value = vec.get(i);

    }

    3.2、迭代器

    Iterator it = vec.iterator();

    while(it.hasNext()){

    value = it.next();

    //do something

    }

    3.3、for 循环

    for(Integer value:vec){

    //do something

    }

    3.4、Enumeration 循环

    Vector vec = new Vector<>();

    Enumeration enu = vec.elements();

    while (enu.hasMoreElements()) {

    value = (Integer)enu.nextElement();

    }

    展开全文
  • 为了可以使用 vector,必须在你的头文件中包含下面的代码: #include vector 属于 std 命名域的,因此需要通过命名限定,如下完成你的代码: using std::......Java中集合用法总结 收藏 Collection ├List │├LinkedList...

    为了可以使用 vector,必须在你的头文件中包含下面的代码: #include vector 属于 std 命名域的,因此需要通过命名限定,如下完成你的代码: using std::......

    Java中集合用法总结 收藏 Collection ├List │├LinkedList │├ArrayList (异步,线程不安全,空间用完时自动增长原容量一半) │└Vector (同步,线程安全,空间用完......

    C++中的 vector 使用范例 2009-12-30 16:22:44| 分类: 默认分类|字号 订阅 C++中的 vector 使用范例 一、概述 vector 是 C++标准模板库中的部分内容,它是......

    java语言中的向量_IT/计算机_专业资料。主要是向大家介绍java语言中的向量 JAVA 向量介绍 向量(Vector)是 java.util 类包提供的一个工具类。 它对应于类似数组的......

    Object elementAt(int index) – 返回指定位置处的元素 – 返回对象在使用之前通常需要进行强制类型转换 String str=(String)MyVector.elementAt(0); ? boolean ......

    (10,1); (3)vector c(b); (4)vector d(b.begin(),b.begin()+3); vector是模板形式,尖括号中为元素类型名,它可以是任何合法的数据......

    C++中的 vector 简单使用实例 中的 作者:天涯 来源:中国自学编程网 发布日期:1236667017 前几天网友问我 c++里面的 vector 的使用, 现在对 vector 进行简单总结,......

    总的说来,Java API 中所用的集合类,都是实现了 Collection 接口,他的一个类继承结构如下: Collection

    C++ STL中vector容器的使用方法,里面包含vector的全部函数以及使...

    2 构造中实例化 vec = new vector(); 3 向容器中添加数据: vec.add(); 练习: FILOTest.java 第一个进来,最后一个出去 FILO---栈 练习: 将 Student......

    JAVA中两种有益的类——StringBuffer,Vector及它们在编辑器…_计算机软件及应用_IT/计算机_专业资料。JAVA 中两种有益的类——StringBuffer,Vector 及它们在 编辑......

    Java Vector的用法 3页 免费 Vector类的用法 6页 免费 Vector 的用法 12页 免费 C++Vector用法_合集 11页 免费 vector C++详细用法 9页 免费 C++中vector的使......

    STL 中常用的 vector,map,set 用法 C++的标准模板库(Sta...

    动态数组vector用法_IT/计算机_专业资料。vector Vector 用法介绍这篇文章的目的是为了介绍 std::vector,如何恰当地使用它们的成员函数等操作。本文中还 讨论了条件......

    最后,在《Practical Java》一书中 Peter Haggar 建议使用一个简单的数组(Array)来代替 Vector 或 ArrayList。尤其是对于执行效率要求高的程序更应如此。因为使用数组......

    java.util.vector 中的 vector 的详细用法 ArrayList 会比 Vector 快,他是非同步的,如果设计涉及到多线程,还 是用 Vector 比较好一些 import java.util.*; /......

    最后,在《Practical Java》一书中Peter Haggar建议使用一个简单的数组(Array) 来代替Vector或ArrayList。尤其是对于执行效率要求高的程序更应如此。因为使用数 组(......

    Java 标准包中基本常用类和方法 java.util.Vector; java.util.ArrayList; java.util.Date; java.util Java 标准包中基本......

    2.1 java 中会存在内存泄漏吗,请简单描述。会存在,就是程序员可能创建了一个对象,以后一直不再使用这个对象,这个对象却 一直被引用,即这个对象无用但是却无法被......

    Java 的数组(Array) 、Vector、ArrayList、Hash Map 的异同 array(数组)和 Vector 是十分相似的 Java 构件(constructs) ,两者全然不同,在选择使用 时应根据各自......

    展开全文
  • Vector在Java编程中的应用2008-02-23 19:35vector 抽象容器类型之一(还有list和deque等),与其他几中容器类型不同的是它高效支持随机访问其中的元素。使用vector,首先必须调用头文件(#include )它的声明和初始化是...

    Vector在Java编程中的应用

    2008-02-23 19:35

    vector 抽象容器类型之一(还有list和deque等),与其他几中容器类型不同的是它高效支持随机访问其中的元素。

    使用vector,首先必须调用头文件(#include )

    它的声明和初始化是这样的

    vector 变量名

    vector vi = ( 10 , 1 ) //初始化为10个元素的vector,每个元素都为1

    使用迭代器标识:

    vector test;

    text.begin() text.end()。例如:

    for (vector< type > ::iterator it = text.begin(); it != text.end(); ++it)

    cout << *it << ' ';

    push_back()的用法是将元素插入vector容器的最尾部

    举个例子

    vector vi;

    int a[4] = { 0, 1, 2, 3};

    for ( int i = 0; i<4; ++i )

    vi.push_back(a[i]);

    此时vi就是0 1 2 3

    如果改成

    vi.push_front( a[i] );

    vi就是 3 2 1 0

    参考资料:C++ Primer

    。。。。。。。。。。。。Vector是java.util包的类,他的功能是实现了一个动态增长的数组,像其他数组一样,此向量数组可以为每个包含的元素分配一下整数索引号,但是,向量不同于数组,它的长度可以在创建以后根据实际包含的元素个数增加或减少。

    向量对象是通过capacity(容量)和capacityIncrement(增长幅度)两个因素来实现存储优化管理。容量因素的值总是大于向量的长度,因为当元素被添加到向量中,向量存储长度的增加是以增长幅度因素指定的值来增加的,应用程序可以在插入大量元素前,先根据需要增加适量的向量容量,这样,可以避免增加多余的存储空间。

    以上是参考手册里对Vector的介绍,下面是我学习中的一些心得:

    Vector有三个构造函数

    public Vector(int initialCapacity,int capacityIncrement)

    public Vector(int initialCapacity)

    public Vector()

    这三个构造函数的差别仅仅在于对向量的初始容量和增长幅度的定义上,向量的增长过程是当当前容易不能满足添加的元素时,就按照构造时给定的增长幅度来增加,如果未定义增长幅度,则每次增加的时候会成倍增加。举个例。

    Vector t=new Vetor(4,0);

    展开全文
  • Description1boolean add(E e)This method appends the specified element to the end of this Vector.2void add(int index, E element)This method inserts the specified element at the speci...

    Sr.No.

    Method & Description

    1

    boolean add(E e)

    This method appends the specified element to the end of this Vector.

    2

    void add(int index, E element)

    This method inserts the specified element at the specified position in this Vector.

    3

    boolean addAll(Collection extends E> c)

    This method appends all of the elements in the specified Collection to the end of this Vector.

    4

    boolean addAll(int index, Collection extends E> c)

    This method inserts all of the elements in the specified Collection into this Vector at the specified position.

    5

    void addElement(E obj)

    This method adds the specified component to the end of this vector, increasing its size by one.

    6

    int capacity()

    This method returns the current capacity of this vector.

    7

    void clear()

    This method removes all of the elements from this vector.

    8

    clone clone()

    This method returns a clone of this vector.

    9

    boolean contains(Object o)

    This method returns true if this vector contains the specified element.

    10

    boolean containsAll(Collection> c)

    This method returns true if this Vector contains all of the elements in the specified Collection.

    11

    void copyInto(Object[ ] anArray)

    This method copies the components of this vector into the specified array.

    12

    E elementAt(int index)

    This method returns the component at the specified index.

    13

    Enumeration elements()

    This method returns an enumeration of the components of this vector.

    14

    void ensureCapacity(int minCapacity)

    This method increases the capacity of this vector, if necessary, to ensure that it can hold at least the number of components specified by the minimum capacity argument.

    15

    boolean equals(Object o)

    This method compares the specified Object with this Vector for equality.

    16

    E firstElement()

    This method returns the first component (the item at index 0) of this vector.

    17

    E get(int index)

    This method returns the element at the specified position in this Vector.

    18

    int hashCode()

    This method returns the hash code value for this Vector.

    19

    int indexOf(Object o)

    This method returns the index of the first occurrence of the specified element in this vector, or -1 if this vector does not contain the element.

    20

    int indexOf(Object o, int index)

    This method returns the index of the first occurrence of the specified element in this vector, searching forwards from index, or returns -1 if the element is not found.

    21

    void insertElementAt(E obj, int index)

    This method inserts the specified object as a component in this vector at the specified index.

    22

    boolean isEmpty()

    This method tests if this vector has no components.

    23

    E lastElement()

    This method returns the last component of the vector.

    24

    int lastIndexOf(Object o)

    This method returns the index of the last occurrence of the specified element in this vector, or -1 if this vector does not contain the element.

    25

    int lastIndexOf(Object o, int index)

    This method returns the index of the last occurrence of the specified element in this vector, searching backwards from index, or returns -1 if the element is not found.

    26

    E remove(int index)

    This method removes the element at the specified position in this Vector.

    27

    boolean remove(Object o)

    This method removes the first occurrence of the specified element in this Vector If the Vector does not contain the element, it is unchanged.

    28

    boolean removeAll(Collection> c)

    This method removes from this Vector all of its elements that are contained in the specified Collection.

    29

    void removeAllElements()

    This method removes all components from this vector and sets its size to zero.

    30

    boolean removeElement(Object obj)

    This method removes the first occurrence of the argument from this vector.

    31

    void removeElementAt(int index)

    This method deletes the component at the specified index.

    32

    protected void removeRange(int fromIndex, int toIndex)

    This method removes from this List all of the elements whose index is between fromIndex, inclusive and toIndex, exclusive.

    33

    boolean retainAll(Collection> c)

    This method retains only the elements in this Vector that are contained in the specified Collection.

    34

    E set(int index, E element)

    This method replaces the element at the specified position in this Vector with the specified element.

    35

    void setElementAt(E obj, int index)

    This method sets the component at the specified index of this vector to be the specified object.

    36

    void setSize(int newSize)

    This method sets the size of this vector.

    37

    int size()

    This method returns the number of components in this vector.

    38

    List subList(int fromIndex, int toIndex)

    This method returns a view of the portion of this List between fromIndex, inclusive, and toIndex, exclusive.

    39

    object[ ] toArray()

    This method returns an array containing all of the elements in this Vector in the correct order.

    40

    T[ ] toArray(T[ ] a)

    This method returns an array containing all of the elements in this Vector in the correct order; the runtime type of the returned array is that of the specified array.

    41

    String toString()

    This method returns a string representation of this Vector, containing the String representation of each element.

    42

    void trimToSize()

    This method trims the capacity of this vector to be the vector’s current size.

    展开全文
  • 概述软件包类使用树已过时索引帮助JavaTM2PlatformStandardEd. 6上一个类下一个类框架无框架摘要:嵌套|字段|构造方法|方法详细信息:字段|构造方法|方法java.awt.font类 GlyphVectorjava.lang.Objectjava.awt.font....
  • 1.FileWriter writer = new FileWriter(fileName,true);true 表示在原文本的基础追加。2.BufferedWriter当写入的文件的内容较多时,写入的效率就成为问题。可以用BufferedWriter来缓冲一下。BufferedWriter与...
  • vector database v3.5 开发文档,直列式数据库新秀vector database v3.5 开发文档垂直开发秘籍
  • http://www.cplusplus.com/reference/vector/vector/ C++_vector操作 https://blog.csdn.net/weixin_41743247/article/details/90635931 C++ vector用法(详解!!函数,实现) ...
  • 仅供学习,请勿做他用 链接:https://pan.baidu.com/s/1ohChDnic4cJxGmS4c0l_zw 提取码:haha
  • AUTOSAR详细介绍(vector文档

    热门讨论 2013-05-09 18:54:59
    vector公司做的介绍AUTOSAR的详细资料,简单易懂,适合汽车行业的初学者和想了解AUTOSAR的工程师。
  • Vector CANoe 9.0 官方文档(CHM格式),英文,从软件中提取
  • C++stl学习文档 vector

    2014-06-25 16:01:28
    Vector: 容器(vector)是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库; 要使用容器必须得包含头文件#include
  • 这个只是举个例子而已,目的就是想说txt里面的数字长短都不一样,所以考虑用vector来记录,而且我想既然是这样的结构应该是二维vector数组吧?我写的程序目前是这样的: #include <iostream> #include<...
  • vector

    2021-01-02 09:35:17
    C++关于vector的官方文档 http://www.cplusplus.com/reference/vector/vector/erase/ vector<int>v1; v1[0]=9;//错误,如果初始化没有定义vector的大小,不能通过引用赋值,否则会报错:Segmentation
  • 每一行都是一个struct,每一行最后几个数字的数量不一样,需要把每一行作为struct 放入到vector中,然后输出到屏幕以及新建的文档B中。 struct如下。自己写了感觉乱七八糟。 每一行后面的几个数字总是读不全,然后...
  • 这是一个自己整理的详细的英文Raphael 2.2参考文档,压缩包内包含pdf参考文档《Learning Raphael JS Vector Graphics》和示例demo。
  • 来源 |汽车电子与软件知圈 |进“线控底盘社群”请加微信13636581676,备注底盘文档说明考虑到这几篇AUTOSAR文档的结构完全一样,在此先对将涉及的文档做一个概括性说明。以CAN Driver规范为例,如下图1所示。图1 CAN...
  • 在AUTOSAR的架构中,将其划分为三层,如下:在RTE以下的,由四个大的components组成,1. Microcontroller Abstractions Layer : 这一层是基础软件的最底层,主要是包括MCU的外设驱动,比如:ADC,GPT, DIO等等一系列...
  • 图3 经Can Interface的发送过程 文档对CanIf_Transmit函数的定义和描述如下: 图4 CanIf_Transmit函数的定义,引自[1] 这个函数两个输入参数,由TxPduId可解析出相应的CAN控制器和Hth,具体如何实现解析的,后文会...
  • 明天我会尽量搞完seq, str和vector的。 另外,菊花图和SPFA不太懂。所以这里的搞得非常模糊。 我可能不能马上回复,抱歉。 P.S. Wiki的文档我想我也会找时间尽量弄的。</p><p>该提问来源于开源项目ÿ...
  • OEM和Tier1之间软件开发的合作方式,主要是由OEM向Tier1分发书写格式和内容非常规范化的需求文档,有些做到好的,则采用格式化的语言来描述需求,甚至是伪代码的书写形式。 V模型开发流程(瀑布模型的进阶)是当时的...
  • c++简单实现-vector

    2020-01-31 11:00:53
    vector文档:          1、 vector是表示可变大小数组的序列容器, 采用连续存储空间来储存元素(像数组一样) 支持下标访问和修改, 但是又与数组不同, 它的长度是...
  • 原文引自Luo, Feng , and Y. Xie . "Conformance Test of AUTOSAR Network Management."International Journal of Wireless Information Networks25.3(2018):279-288.本文仅供自学和交流使用,未经允许请勿转载~谢谢...
  • SDK信息-开发者文档 为Anki提供轻松访问我们的技术和推进机器人技术状态的热情,我们利用Cozmo功能为所有者发布了免费的软件开发工具包(“SDK”)! 使用SDK,您可以使用单行代码对Cozmo进行编程,这些代码...
  • 首先,我们从matlab给出的Steering Vector文档开始入门,入门链接: 参考地址:https://ww2.mathworks.cn/help/phased/ref/steervec.html?s_tid=srchtitle elementPos = (0:.1:.4); c = physconst('LightSp
  • Partition Software Architecture Appendix: E2E,Wdgm的图片介绍(摘录自Vector库): 距离上一次写文章已经很久了,感觉迷茫了吧。。。。不过写写思路会更清晰的,更能让人沉下心来。下期见,朋友,觉得好的话就多...
  • vector_space_modelling:Python向量空间建模中的NLP和文档分类NLP
  • 欧洲 测量与标定协议 XCP 文档vector的源码,在frescael的32位机上的实例。 欧洲 测量与标定协议 XCP 文档vector的源码,在frescael的32位机上的实例。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,500
精华内容 600
关键字:

vector文档