java Vector的特点与使用
Vector
Vector的数据结构
基于数组,大小可变(数组扩容)。
Vector与ArrayList的比较
我看了下源码,最大区别就是Vector的方法加了synchronized,是线程安全的
常用方法使用例子
import java.util.Vector;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class VectorTest{
public static void main(String[] args) {
Vector<String> vec=new Vector<>();
vec.add("1");
vec.add("2");
vec.add("3");
vec.add("4");
vec.add("5");
// 设置第一个元素为10
vec.add(0,"10");
//把20放到第二个元素
vec.insertElementAt("20",1);
// 将"30"插入到第3个位置
vec.set(3,"30");
for(String str: vec){
log.info("value : {} ,index {}",str,vec.indexOf(str));
}
// (顺序查找)获取10的索引
log.info("value: 10,index {}",vec.indexOf("10"));
// (倒序查找)获取10的索引
log.info("value: 10,index {}",vec.lastIndexOf("10"));
// 获取第一个元素
log.info("index 0 value is {}",vec.get(0));
// 获取第3个元素
log.info("index 0 value is {}",vec.elementAt(0));
// 获取最后一个元素
log.info("last index value is", vec.lastElement());
// 获取Vector的大小
log.info("vector size is {}",vec.size());
// 获取Vector的容量
log.info("vector cap is {}",vec.capacity());
// 获取vec对应的String数组
log.info("vector to string {}",vec.toArray(new String[0]).toString());
// 清空Vector
vec.clear();
log.info("vector size is {}",vec.size());
log.info("vector cap is {}",vec.capacity());
// 判断Vector是否为空
log.info("vector is empty: {}",vec.isEmpty());
}
运行结果
2019-07-11 13:36:07,044 [main] INFO com.fang.java.javabase.firstcollection.VectorTest - value : 10 ,index 0
2019-07-11 13:36:07,048 [main] INFO com.fang.java.javabase.firstcollection.VectorTest - value : 20 ,index 1
2019-07-11 13:36:07,049 [main] INFO com.fang.java.javabase.firstcollection.VectorTest - value : 1 ,index 2
2019-07-11 13:36:07,049 [main] INFO com.fang.java.javabase.firstcollection.VectorTest - value : 30 ,index 3
2019-07-11 13:36:07,049 [main] INFO com.fang.java.javabase.firstcollection.VectorTest - value : 3 ,index 4
2019-07-11 13:36:07,049 [main] INFO com.fang.java.javabase.firstcollection.VectorTest - value : 4 ,index 5
2019-07-11 13:36:07,049 [main] INFO com.fang.java.javabase.firstcollection.VectorTest - value : 5 ,index 6
2019-07-11 13:36:07,049 [main] INFO com.fang.java.javabase.firstcollection.VectorTest - value: 10,index 0
2019-07-11 13:36:07,049 [main] INFO com.fang.java.javabase.firstcollection.VectorTest - value: 10,index 0
2019-07-11 13:36:07,049 [main] INFO com.fang.java.javabase.firstcollection.VectorTest - index 0 value is 10
2019-07-11 13:36:07,050 [main] INFO com.fang.java.javabase.firstcollection.VectorTest - index 0 value is 10
2019-07-11 13:36:07,050 [main] INFO com.fang.java.javabase.firstcollection.VectorTest - last index value is
2019-07-11 13:36:07,050 [main] INFO com.fang.java.javabase.firstcollection.VectorTest - vector size is 7
2019-07-11 13:36:07,050 [main] INFO com.fang.java.javabase.firstcollection.VectorTest - vector cap is 10
2019-07-11 13:36:07,050 [main] INFO com.fang.java.javabase.firstcollection.VectorTest - vector to string [Ljava.lang.String;@17a7cec2
2019-07-11 13:36:07,051 [main] INFO com.fang.java.javabase.firstcollection.VectorTest - vector size is 0
2019-07-11 13:36:07,051 [main] INFO com.fang.java.javabase.firstcollection.VectorTest - vector cap is 10
2019-07-11 13:36:07,051 [main] INFO com.fang.java.javabase.firstcollection.VectorTest - vector is empty: true
java Vector的特点与使用的更多相关文章
- Java Vector 类
Vector类实现了一个动态数组.和ArrayList和相似,但是两者是不同的: Vector是同步访问的. Vector包含了许多传统的方法,这些方法不属于集合框架. Vector主要用在事先不知道 ...
- Java& Vector与ArrayList区别
在写java的时候,基本上都喜欢用arraylist,甚至我都不知道有个vector的存在.查了一下发现又是线程安全问题...咋个线程安全天天围着我转呢...多得阿里巴巴,让我开始认识java的所谓线 ...
- [Java]Vector源码分析
第1部分 Vector介绍 Vector简介 Vector也是基于数组实现的,是一个动态数组,其容量能自动增长.继承于AbstractList,实现了List, RandomAccess, Clone ...
- java vector 和ArrayList的区别
相同点: 1.都是使用数组存储数据 不同点: 1.Vector是显示安全的,ArrayList是线程不安全的 Vector部分代码: public synchronized boolean add(E ...
- java vector的多线程安全是否有用
在网上搜了不少文章,发现有不少没讲清楚的,也有不少好文,本文希望更易懂地描述该问题.如有不对的地方,请多多指正~~ vector的使用主要有如下两种场景:(1)vector所谓的多线程安全,只是针对单 ...
- java Vector向量
9.3.4 Vector向量 [专业IT培训机构,真正零首付入学www.bjsxt.com] Vector底层是用数组实现的List,相关的方法都加了同步检查,因此“线程安全,效率低”. 比如,ind ...
- java:容器/集合Collection(List(ArrayList,LinkedList,Vector),Set(HashSet(LinkedHashSet),TreeSet))
/** * Collection接口 不唯一,无序 * 常用的方法: * add(Object e) 确保此 collection 包含指定的元素(可选操作). * size():获取集合中元素的个 ...
- Java基础知识笔记(八:集合类)
目录 1 集合类简介 2 List介绍及简单使用 2.1 LinkedList介绍及简单使用 2.2 ArrayList介绍及简单使用 2.3 Vector介绍及简单使用 2.3.1 S ...
- JDK1.8源码阅读系列之三:Vector
本篇随笔主要描述的是我阅读 Vector 源码期间的对于 Vector 的一些实现上的个人理解,用于个人备忘,有不对的地方,请指出- 先来看一下 Vector 的继承图: 可以看出,Vector 的直 ...
随机推荐
- U2000解决备份:服务器不可达、FTP/TFTP/SFTP IP地址与网管地址不一致
只需要将一下几点设置到位这些问题基本解决: 设置->网元软件管理->FTP设置 如果你的U2000服务器和OLT都在一个内网,那么就IP1和IP2就都输入U2000服务器的内网IP,否则按 ...
- 图解 Kafka 水印备份机制
高可用是很多分布式系统中必备的特征之一,Kafka 日志的高可用是通过基于 leader-follower 的多副本同步实现的,每个分区下有多个副本,其中只有一个是 leader 副本,提供发送和消费 ...
- springweb 详解。
spring web架构图 从图中可以看出, 如果要对输出的内容进行重构,不需要视图的话,在handlerMethodReturnValueHandler里进行操作,可以重构这个对象,以达到自定义输出 ...
- 不是充许的静态以太网地址,它与vmware保留的mac地址冲突
不是充许的静态以太网地址,它与vmware保留的mac地址冲突 只需修改vxm文件即可. 第一部,打开vmw的镜像位置,如图. 点击后,打开硬盘,如下 把这个vmx结尾的文件下载,在本地编辑,可用tx ...
- 批处理执行Testng
@echo off set LIB=项目的jar路径 set CLASSPATH=%LIB%\jar\commons-beanutils-.jar;%LIB%\jar\testng.jar;%LIB% ...
- Navicat for MySQL怎么往表中填数据
只有往表中更新数据,数据库才会起到真正的作用. 工具/原料 仔细阅读 方法/步骤 1.打开数据库,首先连接localhost,如图所示. 2.连接成功后,右侧便会显示已经建成的表,找到要修改的表, ...
- C - Water The Garden
It is winter now, and Max decided it's about time he watered the garden. The garden can be represent ...
- EXPOSE ocker run -P 时,会自动随机映射 EXPOSE 的端口
EXPOSE 声明端口 格式为 EXPOSE <端口1> [<端口2>...]. EXPOSE 指令是声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用 ...
- kafka 分区
1. 默认存储 /tmp/kafka-logs test-0 0:分区数
- 【Javaweb】Servlet的xml和注解配置
1.xml <%@ page language="java" contentType="text/html;" %> <!DOCTYPE ht ...