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 的直 ...
随机推荐
- php中流行的rpc框架详解
什么是RPC框架? 如果用一句话概括RPC就是:远程调用框架(Remote Procedure Call) 那什么是远程调用? 我的官方群点击此处. 通常我们调用一个php中的方法,比如这样一个函数方 ...
- 思科AP-什么是COS AP?
COS:Click OS 所有新的wave 2 AP都带有COS.它建立在IOS之上,但behaves 不同. COS APs是Click OS APs(较新的AP型号,Wave 2等) 例如:18x ...
- Catalyst3560密码破解
1.关机:2.将设备MODE键按住,然后开机,进入switch:switch: flash_initInitializing Flash...flashfs[0]: 7 files, 2 direct ...
- 在java的静态方法中访问类的实例成员
直接来看代码: public class Example { int x = 3;//类的实例变量,初始化值为3 static int y = 4;//类的静态变量,初始化值为4 public sta ...
- C语言-调试
1 格式化输出函数printf("%d %s",a,str):格式化控制符之间不能有“逗号”,可以用空格 1.1格式化输入函数scanf(“%d”,t)格式化控制符之间不能有空格 ...
- Fleck WebSocket使用
Fleck WebSocket使用 作为笔记存储. 最近公司有这方面的使用需求.在网上查了一些资料后.得到了想要的结果.以下记录摘抄至网上资料. 1.首先,服务端.项目NuGet直接引用Fleck类库 ...
- 解决CentOS7用yum安装软件显示错误:cannot find a valid baseurl for repo: base/7/x86_64
使用yun安装软件时有时会报repo文件的错误,, 主要问题出自于CentOS-Base.repo文件 解决方案:将这个文件后缀名修改使这个文件无效 [root@localhost ~]# cd /e ...
- Centos10卸载nginx
1.停止服务 /usr/local/nginx/sbin/nginx -s stop yum remove nginx 2.查看Nginx相关文件 whereis nginx 删除:rm -rf /u ...
- Sqoop 一点通
sqoop 是什么? sqoop 主要用于异构数据: 1. 将数据从hadoop,hive 导入.导出到关系型数据库mysql 等; 2. 将关系型数据库 mysql 中数据导入.导出到 hadoop ...
- pip使用技巧
1. pip install 'easydict==1.6' --force-reinstall 强制安装制定version 2. pip install git+https://github.com ...