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 的直 ...
随机推荐
- 登录oracle ORA-12541: TNS:no listener报错
初次安装Oracle是通过VMware在虚拟机上安装的,安装Oracle过程,解锁了两个用户,分别是Scott和HR,也设置了密码,安装完成后输入sqlplus scott/admin123(scot ...
- node vue 项目git 管理
push 上传到云的时候,依赖包及相关文件是不上传上去的, 所以每次克隆到本地后,node 项目运行前须要 npm install 安装对应依赖 vue 项目编译前也须要 npm install,安 ...
- 常用SQL语句大全
一些常用SQL语句大全 一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql se ...
- 转专业后补修C语言的一些体会(3)
1.指针:指针是C语言最为强大的工具之一,有着很多优点,比如可以改善子程序的效率,为动态数据结构提供支持,为C的动态内存分配系统提供支持,为函数提供修改变量值的手段.但指针的使用十分困难.会出现很多意 ...
- java程序设计课期中考试——数据库的增删改查和简单的js界面
首先是设计思路,对于数据库的增删改查,我们借助Ecilipse来进行前端和后端的编写.Ecilipse是可以进行java web项目的操作的. 前端,我们选择用使用jsp,所谓的jsp就是可以嵌入其他 ...
- Babel的安装和使用
安装Node.JS 和 npm,如未安装可参照其他文章 1.创建一个package.json npm init (回车, 一直下一步即可) 安装 Babel npm install --save-de ...
- 基于Modelsim的视频捕获模拟仿真
一.前言 针对牟新刚编著的<基于FPGA的数字图像处理原理及应用>中第五章系统仿真中关于视频捕获模拟的例子进行补充和仿真验证,简言之,吊书袋子. 2020-02-27 21:09:05 二 ...
- Java 8 stream 实战
概述 平时工作用python的机会比较多,习惯了python函数式编程的简洁和优雅.切换到java后,对于数据处理的『冗长代码』还是有点不习惯的.有幸的是,Java8版本后,引入了Lambda表达式和 ...
- 2.ORM框架添加,修改,删除操作
创建了表对象,代码如下: from flask import Flask from flask_sqlalchemy import SQLAlchemy app=Flask(__name__) # 配 ...
- 第三周之Hadoop学习(三)
从上周的这篇教程中继续hadoop的安装过程:http://dblab.xmu.edu.cn/blog/install-hadoop-in-centos/ 上节课安装到对hadoop中的输出的文件夹的 ...