Java集合框架学习(七) Vector详解
Vector介绍
Vector 实现了List接口。和ArrayList一样也维护元素的插入顺序。
但它一般只用在多线程环境,因为它是线程同步的。
还有就是它对元素的增删改查效率低下。
类定义
public class Vector<E>
extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, Serializable
有三种构造方法来实例化Vector
1.Vector vec = new Vector();
创建一个空Vector,初始大小为10。当你插入第11个元素后它会再扩展10个空间,也就是说它默认扩展自身一倍大小。
2.Vector object= new Vector(int initialCapacity)
Vector vec = new Vector(3); //出事大小为3
3.Vector object= new vector(int initialcapacity, capacityIncrement)
Vector vec= new Vector(4, 6); //初始大小为4,后面每次扩展6个空间
常用方法
增:add, addAll,
删:clear, remove
改:set,
查:capacity, contains, containsAll, elements, firstElement, get, indexOf等
转换:toArray, toString
例子介绍
package com.dylan.collection;
import java.util.Enumeration;
import java.util.Vector;
/**
* @author xusucheng
* @create 2018-01-31
**/
public class VectorExample {
public static void main(String args[]) {
/* Vector of initial capacity(size) of 2 */
Vector<String> vec = new Vector<String>(2);
/* Adding elements to a vector*/
vec.addElement("Apple");
vec.addElement("Orange");
vec.addElement("Mango");
vec.addElement("Fig");
/* check size and capacityIncrement*/
System.out.println("Size is: "+vec.size());
System.out.println("Default capacity increment is: "+vec.capacity());
vec.addElement("fruit1");
vec.addElement("fruit2");
vec.addElement("fruit3");
/*size and capacityIncrement after two insertions*/
System.out.println("Size after addition: "+vec.size());
System.out.println("Capacity after increment is: "+vec.capacity());
/*Display Vector elements*/
Enumeration en = vec.elements();
System.out.println("\nElements are:");
while(en.hasMoreElements())
System.out.print(en.nextElement() + " ");
}
}
如何给Vector排序
package com.dylan.collection;
import java.util.Collections;
import java.util.Vector;
/**
* @author xusucheng
* @create 2018-01-31
**/
public class SortingVectorExample {
public static void main(String[] args) {
// Create a Vector
Vector<String> vector = new Vector<String>();
//Add elements to Vector
vector.add("Walter");
vector.add("Anna");
vector.add("Hank");
vector.add("Flynn");
vector.add("Tom");
// By Default Vector maintains the insertion order
System.out.println("Vector elements before sorting: ");
for(int i=0; i < vector.size(); i++){
//get(i) method fetches the element from index i
System.out.println(vector.get(i));
}
// Collection.sort() sorts the collection in ascending order
Collections.sort(vector);
//Display Vector elements after sorting using Collection.sort
System.out.println("Vector elements after sorting: :");
for(int i=0; i < vector.size(); i++){
System.out.println(vector.get(i));
}
}
}
Vector转换为ArrayList
package com.dylan.collection;
import java.util.ArrayList;
import java.util.Vector;
/**
* @author xusucheng
* @create 2018-01-31
**/
public class VectorToArrayList {
public static void main(String[] args) {
// Creating a Vector of String elements
Vector<String> vector = new Vector<String>();
// Populate Vector
vector.add("Rahul");
vector.add("Steve");
vector.add("Jude");
vector.add("Locke");
vector.add("Mike");
vector.add("Robert");
//Displaying Vector elements
for (String str : vector){
System.out.println(str);
}
//Converting Vector to ArrayList
ArrayList<String> arraylist = new ArrayList<String>(vector);
//Displaying ArrayList Elements
System.out.println("\nArrayList Elements :");
for (String s : arraylist){
System.out.println(s);
}
}
}
Vector转换为Array
package com.dylan.collection;
import java.util.Vector;
/**
* @author xusucheng
* @create 2018-01-31
**/
public class VectorToArray {
public static void main(String[] args) {
// Creating a Vector of String elements
Vector<String> vector = new Vector<String>();
// Add elements to Vector
vector.add("Item1");
vector.add("Item2");
vector.add("Item3");
vector.add("Item4");
vector.add("Item5");
vector.add("Item6");
//Converting Vector to String Array
String[] array = vector.toArray(new String[vector.size()]);
//Displaying Array Elements
System.out.println("String Array Elements :");
for(int i=0; i < array.length ; i++){
System.out.println(array[i]);
}
}
}
Java集合框架学习(七) Vector详解的更多相关文章
- Java集合框架学习(一)List
先附一张Java集合框架图. 从上面的集合框架图可以看到,Java集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Coll ...
- Java集合框架学习
集合框架 集合框架的目标 该框架必须是高性能的.基本集合(动态数组,链表,树,哈希表)的实现必须是高效的. 该框架允许 不同类型的集合,以类似的方式工作,具有高度的互操作性. 对一个集合的扩展和适应必 ...
- Java 集合Collection与List的详解
1.什么是集合 存储对象的容器,面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,存储对象,集合是存储对象最常用的一种方式. 集合的出现就是为了持有对象.集合中可以存储任意类型的 ...
- java集合的方法及使用详解
一.java集合的分类及相互之间的关系 Collection接口:向下提供了List和Set两个子接口 |------List接口:存储有序的,存储元素可以重复 |------ArrayList(主要 ...
- 【java基础 11】java集合框架学习
导读:本篇博客主要是从整体上了解java的集合框架,然后主要介绍几个自己在项目中用到的结构,比如说:hashtable.hashmap.hashset.arraylist等! 一.宏观预览 从宏观上看 ...
- Java集合框架学习笔记
集合类的由来:对象用于封装特有数据,对象多了需要存储,如果对象的长度不确定,就使用集合存储. 集合特点1.用于存储对象的容器.2.集合的长度可变.3.集合中不可以存储基本类型 集合容器因为内部的数据结 ...
- java提高篇(七)-----详解内部类
可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二). 第一次见面 内部类我们从外面 ...
- Java后端框架之Spring Boot详解,文末有Java分布式实战项目视频可取
在 Java 后端框架繁荣的今天,Spring 框架无疑是最最火热,也是必不可少的开源框架,更是稳坐 Java 后端框架的龙头老大. 用过 Spring 框架的都知道 Spring 能流行是因为它的两 ...
- Java集合框架学习总结
转自:http://www.cnblogs.com/oubo/archive/2012/01/07/2394639.html Oubo的博客 以下介绍经常使用的集合类,这里不介绍集合类的使用方法,只介 ...
- 《Java Spring框架》SpringXML配置详解
Spring框架作为Bean的管理容器,其最经典最基础的Bean配置方式就是纯XML配置,这样做使得结构清晰明了,适合大型项目使用.Spring的XML配置虽然很繁琐,而且存在简洁的注解方式,但读懂X ...
随机推荐
- [转帖]深度硬核文:Nginx的301重定向处理过程分析
https://zhuanlan.zhihu.com/p/84539204 本文首发于公众号:js-mindmap 一,序言 "晚上九点,办公室里烟雾缭绕,工作进度依然没有什么进展.王二胖打 ...
- [转帖]Jmeter常用配置元件(二):“HTTP Cookie管理器”登录状态保持
在API接口测试过程中,我们需要传递cookie值作为连接状态的保持,例如登录后状态信息.通过使用Jmeter提供的"HTTP Cookie管理器"来实现. 一般情况下不需要输入什 ...
- [转帖]5、kafka监控工具Kafka-Eagle介绍及使用
https://zhuanlan.zhihu.com/p/628039102 # Apache Kafka系列文章 1.kafka(2.12-3.0.0)介绍.部署及验证.基准测试 2.java调 ...
- Redis性能问题诊断以及scan命令耗时分析
Redis性能问题诊断以及scan命令耗时分析 摘要 最近公司有项目反馈卡顿. 卡顿一小时后自己被拉入群聊. 同事已经基本上定位到问题原因. 我这边想使用朴素的性能观点进行一下性能问题的拆解 为了提高 ...
- Nginx 系列 | (转)Nginx 上传文件:client_max_body_size 、client_body_buffer_size
原文:http://php-note.com/article/detail/488 client_max_body_size client_max_body_size 默认 1M,表示 客户端请求服务 ...
- 一次典型的Memroy Leak的跟踪学习过程
背景 周四时某项目在QQ群里说自己的系统出现了CPU占用较高的情况. TOP 查看发现大部分占用CPU的都是 JAVA核心进城后附近的进程. 所以初步怀疑 是出现了FullGC的问题. 然后群里反馈了 ...
- jmaps
#!/bin/bash # # jmaps - creates java /tmp/perf-PID.map symbol maps for all java processes. # # This ...
- with(上下文管理器)的用法
with语句可以自动管理上下文资源,不论什么原因(成功或失败)跳出with语句,都能保证文件正确关闭,并 释放资源,不用手动去close掉资源 1.with语句中有两个内置方法__enter__和__ ...
- drools规则动态化实践
作者:京东物流 李振 康睿 刘斌 王北永 一 . 规则引擎业务应用背景 业务逻辑中经常会有一些冗长的判断,需要写特别多的if else,或者一些判断逻辑需要经常修改.这部分逻辑如果以java代码来实现 ...
- 范德蒙德矩阵行列式 & 循环矩阵行列式的证明
范德蒙德矩阵的行列式 \[\begin{vmatrix} 1 & 1 & 1 & \dots & 1 \\ x_1 & x_2 & x_3 & ...