Java学习笔记27

Vector是List接口的实现类,支持List接口的全部功能,Vector类是基于数组实现的List类,在内部封装了一个动态的、

允许再分配的Object[]数组,Vector是线程安全的,无须程序保证该集合的同步性。

以下是Vector类的一部分方法使用说明:

public class Main {
	public static void main(String[] args) {
		Vector vector=new Vector();
		ArrayList list=new ArrayList();
		list.add("BILL");
		vector.add(list);
		//输出:[[BILL]]
		System.out.println(vector);

		//输出:vector容量:10
		System.out.println("vector容量:"+vector.capacity());
		/*
		 * 增加此向量的容量(如有必要),以确保其至少能够保存最小容量参数指定的组件数。
		 * 如果此向量的当前容量小于 minCapacity,则通过将其内部数据数组(保存在字段 elementData 中)
		 * 替换为一个较大的数组来增加其容量。新数据数组的大小将为原来的大小加上 capacityIncrement,
		 * 除非 capacityIncrement 的值小于等于零,在后一种情况下,新的容量将为原来容量的两倍,
		 * 不过,如果此大小仍然小于 minCapacity,则新容量将为 minCapacity。
		 */
		vector.ensureCapacity(21);
		//输出:vector容量:21
		System.out.println("vector容量:"+vector.capacity());

		Vector vector1=new Vector();
		vector1.add(list);
		/*
		 * 如果指定的 Object 与此向量相等,则返回 true

		 */
		System.out.println(vector.equals(vector1));//输出:true

		/*
		 * 返回此向量的第一个组件(位于索引 0) 处的项)。
		 */
		System.out.println(vector.firstElement());//输出:[BILL]

		/*
		 * 返回向量中指定位置的元素。
		 * 如果索引超出范围 (index < 0 || index >= size()),抛出ArrayIndexOutOfBoundsException 异常
		 */
		System.out.println(vector.get(0));//输出:[BILL]

		/*
		 * 返回此向量的哈希码值。
		 */
		System.out.println(vector.hashCode());

		vector.add("JACK");
		vector.add("MARRAY");
		vector.add("JACK");
		//输出:[[BILL], JACK, MARRAY, JACK]
		System.out.println(vector);

		/*
		 * 返回此向量中第一次出现的指定元素的索引,如果此向量不包含该元素,则返回 -1。更确切地讲,
		 * 返回满足 (o==null ? get(i)==null : o.equals(get(i))) 的最低索引 i;
		 * 如果没有这样的索引,则返回 -1。
		 */
		System.out.println(vector.indexOf("JACK"));//输出:1

		/*
		 * 返回此向量中第一次出现的指定元素的索引,从 index 处正向搜索,
		 * 如果未找到该元素,则返回 -1。
		 * 如果指定索引为负数,抛出IndexOutOfBoundsException异常
		 */
		System.out.println(vector.indexOf("JACK", 2));//输出:3

		/*
		 * 将指定对象作为此向量中的组件插入到指定的 index 处。
		 * 此向量中的每个索引大于等于指定 index 的组件都将向上移位,
		 * 使其索引值变成比以前大 1 的值。 索引必须为一个大于等于 0 且
		 * 小于等于向量当前大小的值(如果索引等于向量的当前大小,
		 * 则将新元素添加到向量)。
		 * 如果索引超出范围 (index < 0 || index > size()),抛出ArrayIndexOutOfBoundsException异常
		 */
		vector.insertElementAt("WORD", 1);
		//输出:[[BILL], WORD, JACK, MARRAY, JACK]
		System.out.println(vector);

		/*
		 * 当且仅当此向量没有组件(也就是说其大小为零)时返回 true;否则返回 false。
		 */
		System.out.println(vector.isEmpty());//输出:false

		/*
		 * 返回此向量中最后一次出现的指定元素的索引;如果此向量不包含该元素,则返回 -1。更确切地讲,
		 * 返回满足 (o==null ? get(i)==null : o.equals(get(i))) 的最高索引 i
		 * ;如果没有这样的索引,则返回 -1。
		 */
		System.out.println(vector.lastIndexOf("JACK"));//输出:4

		/*
		 * 移除此向量中指定位置的元素。将所有后续元素左移(将其索引减 1)。返回此向量中移除的元素。
		 * 如果索引超出范围 (index < 0 || index >= size()),抛出ArrayIndexOutOfBoundsException 异常
		 */
		vector.remove(0);
		//输出:[WORD, JACK, MARRAY, JACK]
		System.out.println(vector);

		/*
		 * 移除此向量中指定元素的第一个匹配项,如果向量不包含该元素,则元素保持不变。
		 * 更确切地讲,移除其索引 i 满足 (o==null ? get(i)==null : o.equals(get(i)))
		 *  的元素(如果存在这样的元素)。
		 */
		System.out.println(vector.remove("WORD"));
		System.out.println(vector);//输出:[JACK, MARRAY, JACK]

	}
}

关于Vector的更多方法,请参看后续的文章

转载请注明出处:http://blog.csdn.net/hai_qing_xu_kong/article/details/44106381 情绪控_

时间: 2024-11-05 10:02:46

Java学习笔记27的相关文章

Java学习笔记(2015.7.27~7.31)

Java学习笔记(2015.7.27~7.31) Java 课堂 Java学习笔记(2015.7.27~7.31) 小技巧 常用方法 1.List另一个子类--LinkedList 2.数组的常用方法 3.排序 1.二分法查找 2.数组转换为List 3.可变参数Type ... param (了解) 1.容器Collection 2.自动拆装箱(了解) 3.JDK增强for循环(了解) 4.泛型(掌握) 5.iterator与for在迭代中的区别 1.概念:保存多个对象的对象. 2.JDk为什

java学习笔记3——java关键字

java学习笔记3——java关键字 虽然老师说不用刻意的去记忆,但是我还是在网上找到了非常详细的注解,再次收藏 关键字的类型表: 各个关键字的详细注解和实例,按首字母排序: 1.abstract abstract 关键字可以修改类或方法. abstract 类可以扩展(增加子类),但不能直接实例化. abstract 方法不在声明它的类中实现,但必须在某个子类中重写. -示例- public abstract class MyClass{ } public abstract String my

【Java学习笔记之二十六】深入理解Java匿名内部类

在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意的事项.如何初始化匿名内部类.匿名内部类使用的形参为何要为final. 一.使用匿名内部类内部类 匿名内部类由于没有名字,所以它的创建方式有点儿奇怪.创建格式如下: new 父类构造器(参数列表)|实现接口() { //匿名内部类的类体部分 } 在这里我们看到使用匿名内部类我们必须要继承一个父类或者

Java学习笔记之继承

一.继承的基础 在Java术语中,被继承的类叫超类(superclass),继承超类的类叫子类(subclass). 举例说明: 1 class Box 2 { 3 public double width; 4 public double height; 5 public double depth; 6 7 //重载构造方法 8 public Box(Box ob) 9 { 10 width = ob.width; 11 height = ob.height; 12 depth = ob.dep

Java学习笔记之接口

一.接口的概念与定义 首先考虑一个简单的接口的定义: public interface Output { int MAX_LINE = 40; void out(); void getData(String msg); } 定义接口使用关键字interface 修饰符interface前面的public可以省略,如果省略,则采用默认访问控制,即只有在相同包结构的代码才可以访问此接口 接口不可以有构造方法(区别于类中的构造方法) 接口里面的所有成员,包括常量.方法等都是public访问权限,所以在

Java学习笔记之方法重载,动态方法调度和抽象类

一.方法重载 如果子类中的方法与它的超类中的方法有相同的方法名,则称子类中的方法重载超类中的方法,特别是当超类和子类中的方法名和参数类型都相同时,在子类中调用该方法时,超类中的方法会被隐藏.考虑下面程序: 1 class A 2 { 3 int i, j; 4 A(int a, int b) 5 { 6 i = a; 7 j = b; 8 } 9 10 // display i and j 11 void show() 12 { 13 System.out.println("i and j: &

Java学习笔记——动态代理

所谓动态,也就是说这个东西是可变的,或者说不是一生下来就有的.提到动态就不得不说静态,静态代理,个人觉得是指一个代理在程序中是事先写好的,不能变的,就像上一篇"Java学习笔记--RMI"中的远程代理,其中客户端服务对象就是一个远程服务对象的代理,这个代理可以使得客户在操作时感觉像在操作本地对象一样,远程对象对于客户是透明的.我们可以看出这里的远程代理,是在程序中事先写好的,而本节我们要讨论的远程代理,是由JVM根据反射机制,在程序运行时动态生成的.(以上是本人的理解,如果有不正确的地

Java学习笔记3-操作符

Java基本操作符:+.-.*./.%.=.==.!=.+=.-=. 优先级:先乘除后加减,如果是连接符+号会优先往前匹配,比如 a+++++b,会被解释称 a++ ++ +b,所以会报错,需要自行使用括号隔离为 (a++) + (++b). 对象的引用如果赋值给了对象的引用后,2 个对象将指向同一个引用,有一个对象的引用重新赋值后将同时影响到另一个对象,比如 ClassName classA = new ClassName(); ClassName classB = new ClassName

java学习笔记10--泛型总结

java学习笔记系列: java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--对象的初始化与回收 java学习笔记3--类与对象的基础 java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址:http://www.cnblogs.com/archimedes/p/java-study-note10.html,转载