首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >vector数组 java_Java——数组、向量(Vector)详解

vector数组 java_Java——数组、向量(Vector)详解

作者头像
用户7886150
修改2021-04-27 17:50:39
修改2021-04-27 17:50:39
1.4K0
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: Java向量Vector

数组

 一维数组初始化方式:

 1. int []arr=new int[5]; 和int arr[] = new int[5];效果是一样的,不过开发中推荐前者。

 2. int[]arr = new int[]{3,5,1,7};或者简化为int []arr = {3,5,1,7};

 二维数组定义方式

 //直接为每一维分配空间

 int a[][] = new int[2][3];

 //依次为每一维分配空间

 int a[][] = new int[2][];

 a[0] = new int[3];

 a[1] = new int[3];

 这一点在c和c++中是不同的。在c和c++中必须一次指明每一维的长度。

 二维数组初始化方式:

 (1)直接对每个元素进行赋值;

 (2)在定义数组的同时进行初始化。如:

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

 //a数组的行和列的个数可以通过length求得

 a.length = 3;

 a[i].length = 2;

 向量(Vector)

 Vector和数组非常类似,但是它可以存储多个对象,并且可以根据索引值来检索这些对象。数组和Vector的最大区别就是当空间用完以后,Vector会自动增长。同时Vector还提供了额外的方法来增加或者删除元素,而在数组中,必须手工完成。

 Vector的三种构造方法

 (1)public Vector();创建一个空的Vector;

 (2)public Vector(int initialcapacity);创建一个Vector,其初始化大小为initial capacity.

 (3)public Vector(int initialcapacity,int capacityIncrement);

 创建一个Vector,其初始化大小为initial capacity,当Vector需要增长时,其增长速度由capacityIncrement决定。

 注意:如果增长的速度不指定,那么Vector会将其空间增加一倍。当Vector很大的时候,这可能导致系统性能下降以及其他问题,建议设置具体的增长速度。

 Vector中的几种查找函数

 (1)public final int indexOf(Object obj)

 从向量头开始搜索obj,返回所遇到的第一个obj对应的下标,若不存在此obj,返回-1.

 (2)public final synchronized int indexOf(Object obj,int startindex) throws ArrayIndexOutOfBoundsException;

 从startindex所表示的下标处开始搜索obj在Vector中第一次出现的位置,没有找到就返回-1.

 (3)public final int lastindexOf(Object obj)

 返回Vector中对象obj最后一次出现的位置,否则返回-1

 (4)public final synchornized int lastIndexOf(Object obj,int index)throws ArrayIndexOutOfBoundsException;

 从index所表示的下标处由尾至头逆向搜索obj.

 (5)public final synchornized firstElement()

 获取向量对象中的首个obj

 (6)public final synchornized Object lastElement()

 获取向量对象的最后一个obj

 (7)public final boolean contains(Object ob);

 查找一个对象是否在一个Vector中,只要出现一次ob指定的对象就返回true,否则返回false。

 Vector中的增加和移除和改变大小操作

 插入

 (1)public final synchronized void adddElement(Object obj)

 将obj插入向量的尾部。obj可以是任何类型的对象。对同一个向量对象,亦可以在其中插入不同类的对象。但插入的应是对象而不是数值,所以插入数值时要注意将数组转换成相应的对象。

 例如:要插入整数1时,不要直接调用v1.addElement(1),正确的方法为:

 Vector v1 = new Vector();

 Integer integer1 = new Integer(1);

 v1.addElement(integer1);

 (2)public final synchronized void setElementAt(Object obj,int index)throws ArrayIndexOutOfBoundsException;

 将index处的对象设置成obj,原来的对象将被覆盖。

 (3)public final synchronized void insertElementAt(Object obj,int index)throws ArrayIndexOutOfBoundsException;

 在index指定的位置插入obj,原来对象以及此后的对象依次往后顺延.如果该位置不存在则抛出一个ArrayIndexOutOfBoundsException异常。

 移除

 (1)public final synchronized boolean removeElement(Object obj)

 移走一个特定的对象obj,如果对象在Vector中出现多次,只移走第一次出现的对象。成功返回true,否则返回false。

 (2)public final synchronized void removeAllElement();

 删除向量所有的对象

 (3)public fianl synchronized void removeElementAt(int index) throws ArrayIndexOutOfBoundsException;

 删除index所指的地方的对象 ,并移动其他对象来填充移走对象的空隙。如果试图从一个不存在的位置移走对象,则会抛出ArrayIndexOutOfBoundsException异常。

 改变大小的操作

 Vector有两种大小的概念,当前存储的元素的个数(size)和Vector的最大容量(capacity);

 //capacity方法告诉用户Vector能容纳多少个对象。

 public final int capacity();

 //ensureCapacity方法可以增加Vector的大小

 public final synchronized void ensureCapacity(int minimumCapacity);

 /*告诉Vector至少能存储minimumCapacity个元素,如果Vector的当前容量比minumunCapacity的 小,将分配给Vector更多的空间;如果Vector的当前空间比minimumCapacity大,Vector也不会减少当前空间。*/

 如果要减少Vector的容量,可以使用trimToSize方法:

 public final synchronized void trimTosize();

 //该方法将Vector的容量减少至当前存储的元素的个数。

 public final int size();

 //该方法告诉Vector中当前含有多少个对象:

 public synchronized final void setSize(int newSize);

 //该方法用于改变当前元素的个数,如果新尺寸小于原尺寸,则新尺寸以后的Vector中原有的元素将丢失;如果新尺寸大于原来的尺寸,,则新增加的元素的值会被置为null。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档