java集合之Vector向量基础
Vector向量:
vector类似动态数组,向量和数组类似,但是数组容量一旦确定不可更改,而向量的容量可变。向量只可以保存任何类型对象且容量不限制,数组对元素类型无限制但是容量有限。
适用场合:向量适用频繁增删元素且元素数组不确定情况、元素都是对象、
数组适合对象数目确定、基础数据类型的元素。
构造方法:
public Vector();
public Vector(int initialCapacity);指定初始容量,超过容量系统自动增加一倍
public Vector(int initialCapacity,int CapacityIncrement);指定初始容量和增长增量,CapacityIncrement为0是默认自动增加一倍(向量的自动增长多于所需内存空间的)
public Vector(Collection<? extends E> c);指定集合构造vector
属性:
protected int capacityIncrement 向量的增量
protected int elementCount 向量的元素个数
protected Object elementData[] 向量成员的缓冲区
常用方法:
void addElement(Object obj);添加到尾部,容量增1
int capacity()返回向量容量
boolean contains(Object obj)判断向量是否包含指定元素
void copyInfo(Object Array[])将向量复制到数组
synchronized Object elementAt(int index)返回指定位置元素,下标非法时抛出ArrayIndexOutOfBoundsException异常
void ensureCapacity(int size)设置向量最小容量为size
synchronized Object firstElement()返回第一个元素,向量为空时抛出NoSuchElementException异常
int indexOf(Object element)返回元素下标,不存在时返回-1
int indexOf(Object element,int start)指定位置开始搜索元素,返回下标值,不存在时返回-1
void insertElementAt(Object obj,int index)指定位置插入,此位置后的内容往后移动1
boolean isEmpty()判断向量是否为空
synchronized Object lastElement()返回向量的最后一个元素,向量为空时抛出NoSuchElementException
int lastIndexOf(Object element)从向量尾开始搜索,返回元素下标
int lastIndexOf(Object element,int start)从指定位置开始向前搜索,返回元素下标
boolean removeElement(Object obj)删除指定元素,若有多个只删除第一个
void removeAllElements()删除所有,容量变为0
void removeElementAt(int index)删除指定位置元素
void setElementAt(Object obj,int index)替换指定位置内容
void setSize(int size)将向量长度设置为size,新长度小于原长度则元素丢失,大于原长度,则自动置为null
int size()返回向量中元素个数
String toString()向量转换为字符串
示例:
package test;
import java.util.Arrays;
import java.util.*;
public class VectorTest {
public static void main(String[] args) {
Vector<String> vector = new Vector<String>();
vector.add("vector1");
vector.addElement("vector2");
vector.add("向量3");
vector.addElement("向量4");
vector.insertElementAt("向量5插入", 2);
System.out.println("1-向量:"+vector);
vector.setElementAt("向量替换1", 1);
System.out.println("2-向量:"+vector+vector.size());
System.out.println("3-向量:"+vector.lastElement());
System.out.println("4-向量:"+vector.lastIndexOf("vector1"));
//不存在元素vector2
if(vector.indexOf("vector2")==-1){
System.out.println("5-向量:"+vector.indexOf("vector2"));
}
System.out.println("6-向量:"+vector.contains("向量4"));
String[] arr= new String[5];
//向量复制到数组
vector.copyInto(arr);
System.out.println("7-数组打印:"+Arrays.toString(arr));
vector.removeAllElements();
System.out.println("8-向量:"+vector.isEmpty());
vector = new Vector<String>(Arrays.asList(arr));
System.out.println("9-向量:"+vector);
System.out.println("10-向量toString打印:"+vector.toString());
for(String vec : vector){
System.out.println(vec);
}
}
}
java集合之Vector向量基础的更多相关文章
- Java基础系列 - JAVA集合ArrayList,Vector,HashMap,HashTable等使用
package com.test4; import java.util.*; /** * JAVA集合ArrayList,Vector,HashMap,HashTable等使用 */ public c ...
- java集合之vector容器
学完ArrayList和LinkedList之后,我们接着学习Vector.第1部分 Vector介绍第2部分 Vector数据结构第3部分 Vector源码解析(基于JDK1.6.0_45)第4部分 ...
- Java集合之Vector
Vector是矢量队列,它继承了AbstractList,实现了List. RandomAccess, Cloneable, java.io.Serializable接口. Vector接口依赖图: ...
- java集合之ArrayList链表基础
ArrayList可变数组 : arrayList继承AbstractList抽象类,实现list接口,底层基于数组实现.可存放null,除了非同步的之外,大致等同Vector.适用快速访问,复制.序 ...
- Java集合之Vector源码分析
概述 Vector与ArrayLIst类似, 内部同样维护一个数组, Vector是线程安全的. 方法与ArrayList大体一致, 只是加上 synchronized 关键字, 保证线程安全, 下面 ...
- java集合之Stack栈基础
Stack堆栈: 是后进先出(LIFO)的对象堆栈,继承Vector—AbstractList--AbstractCollection类,底层是通过数组实现, boolean empty() 判断堆栈 ...
- java 集合(Vector)不做重点
Vector: 底层也是维护了一个Object数组,实现与ArrayList是一样的, 但其线程是安全的,效率低.除了比较老的系统,是不会用到的. 笔试题:ArrayList 和 Vector 的区别 ...
- java集合之linkedList链表基础
LinkedList链表: List接口的链接列表实现.允许存储所有元素(包含null).使用频繁增删元素. linkedList方法: void addFirst(E e) 指定元素插入列表的开头 ...
- Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理
本文非常详尽地介绍了Java中的三个集合类 ArrayList,Vector与Stack <Java集合详解系列>是我在完成夯实Java基础篇的系列博客后准备开始写的新系列. 这些文章将整 ...
随机推荐
- 44 (OC)* 野指针、空指针
一: 空指针 : 没有存储任何内存地址的指针就称为空指针(NULL指针). 被赋值为nil的指针,在没有被具体初始化之前,为nil.nil.Nil.NULL.NSNULL的含义和区别 nil:OC中的 ...
- SpringBoot 2.0 + InfluxDB+ Sentinel 实时监控数据存储
前言 阿里巴巴提供的控制台只是用于演示 Sentinel 的基本能力和工作流程,并没有依赖生产环境中所必需的组件,比如持久化的后端数据库.可靠的配置中心等.目前 Sentinel 采用内存态的方式存储 ...
- mysql5.6.27压缩版安装配置指南【个人总结】
1..下载准备压缩包 360云盘下载地址: https://yunpan.cn/cPKyugkUcDEmP 访问密码 375b 2.解压缩,将压缩版解压到D盘 D:\mysql-5.6. ...
- Java异常详谈
什么是异常: 异常(Exception)是程序运行过程中发生的事件,该事件可以中断程序指令的正常执行流程. 注意: 如果实际抛出的异常对象属于Exception的子类对象,而继承自Throwable类 ...
- Django之choices选项和富文本编辑器的使用
项目准备 1.创建数据库 create database choices_test default charset utf8; 2.创建一个名为 choices_test 的Django项目: 3.创 ...
- 常用的HDFS操作
首先,把Hadoop命令加入到PATH环境变量中,直接通过start-dfs.sh开启Hadoop,也可以直接通过hdfs命令访问HDFS中的内容,方便平时的操作. 配置PATH环境变量 vim ~ ...
- 完美激活Pycharm2019.2.3专业版
完美激活Pycharm2019.2.3专业版 Pycharm官网自9月11更新到pycharm2019.2.2版本后,在短短的2周时间与9月25又带来新版本2019.2.3,不可说更新不快,侧面可以看 ...
- 23种设计模式之单例(Singleton Pattern)
单例 在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例(eg:应对一些特殊情况,比如数据库连接池(内置了资源) 全局唯一号码生成器),才能确保它们的逻辑正确性.以及良好的效率 ...
- 无暇代码(js的整洁之道)
如果你关注代码本身和代码的编写方式,而不是只关心它是否能工作,那么你写代码是有一定的水准.专业开发人员将为未来的自己和“其他人”编写代码,而不仅仅只编写当前能工作就行的代码.在此基础上,简洁代码可以定 ...
- Python基础(十六)
今日主要内容 内置模块(标准库) 序列化 hashlib collections 软件开发规范 一.内置模块(标准库) (一)序列化模块 什么是序列化? 将一种数据结构(如列表.字典)转换为另一种特殊 ...