`

向量Vector,链表List,堆栈Stack

阅读更多
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;
import java.util.Stack;
import java.util.Vector;

public class Main {

	public static void main(String[] args) {

		// 向量
		Vector v = new Vector(); //Vector实现Enumeration接口
		Vector v1 = new Vector(40); // 指定初始容量
		for (int i = 1; i <= 20; i++) {
			v.addElement(Integer.toString(i));
		}
		for (int i = 0; i < v.size(); i++) { // 用索引遍历
			System.out.println(v.elementAt(i));
		}
		for (Enumeration e = v.elements(); e.hasMoreElements();) { // 使用枚举类遍历
			String s = (String) e.nextElement();
			System.out.println(s);
		}

		List list = new ArrayList(); // 只能存object类型的元素,需要下溯,或通过List<String> list
										// = new ArrayList<String>();
		for (int i = 1; i <= 20; i++) {
			list.add(Integer.toString(i));
		}
		for (int i = 0; i <= 19; i++) {
			System.out.println(list.get(i));
		}
		for (Iterator it = list.iterator(); it.hasNext();) {
			String s = (String) it.next();
			System.out.println(s);
		}

		// 表
		int[][] matrix = new int[4][];
		for (int i = 0; i < 4; i++) {
			matrix[i] = new int[5];
		}
		System.out.println("行数:" + matrix.length);
		System.out.println("列数:" + matrix[0].length);

		// 堆栈,java.util.Stack,继承Vector,增加了几个堆栈的操作
		Stack stack = new Stack();
		for (int i = 0; i < 10; i++) {
			stack.push(new Integer(i));
		}
		stack.addElement("a string");
		System.out.println("pop from stack:");
		while (!stack.empty()) {
			System.out.println(stack.pop());
		}

	}

java中的向量可用一维数组来实现,在java的System类中还提供了arraycopy(Object src,int srcPos,Object dest,int destPos,int length)方法,将一个数组的部分内容拷贝到另一个数组。把原数组从下标为srcPos到srcPos+length-1的部分复制到目标数组从下标destPos到destPos+length-1的区域中。

Vector类的方法是同步的,这使得Vector的内容是线程安全的,而ArrayList没实现同步,不是线程安全的。

矩阵指的是其中存储的数据都是同一类型的,而表可以存储多种类型的数据。


注意:能用java内置的数组完成的事情,就不要用各种工具类,因为大多数工具类也是通过数组实现的。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics