集合类、
一、定义
所谓的集合类,即为Java中的一种高级数据结构。在Java编程中,常用的集合类和接口有:Vector 、 Emumeration 、 ArrayList 、 Collection、 Iterator、Set 、List等
二、框架
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
三、Vector 类与Emumeration 接口
1、概述
(1)、Vector类:是Java语言提供的一种高级数据结构,可用于保存一系列对象,Vector适用于多线程使用可同步,安全系数较高。因此,Java不支持动态数组,Vector类提供了一种与"动态数组"相近的功能。适用:如果我们不能预先确保要保存对象的数目,或是需要方便获得某个对象的存放位置。
(2)Emumeration接口类:它提供了一种访问各种数据结构(Vector类只是众多数据结构中的一种)中的所有数据的抽象机制,就是访问我们各种数据结构对象中的所有元素是,都可以使用同样的方式,调用同样的方法。例如我们通过Vector.elements方法返回一个Emumeration接口对象(这个对象保存了Vector集合中所有元素),再用Emueration.nextElement方法逐一取出保存在集合中的每个对象。
2、类与接口
Vector<E>-------java.lang.Object
E为泛型
(1)、构造函数
(2)常用方法
| |
| |
|
|
|
|
|
|
|
|
| |
| |
|
|
|
|
| |
|
|
| |
|
3、应用开发举例
package java0516_2;
import java.lang.*;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Vector;
public class Test1 {
public static void main(String[] args) {
/* (1)获取Vector集合中的所有对象及相应的内容
Vector v = new Vector(); //创建一个Vector的集合类对象
Enumeration e=v.elements();
//调用Vector类的elements方法获取所有对象并返回一个Enumeration对象
while (e.hasMoreElements()) //遍历Enumeration对象中的所有元素
{
Integer intObj=(Integer) e.nextElement();
//获取Enumeration中的一个Object对象元素,并将其转换为Integer类型,
// 指示器指向下一个对象
System.out.println(intObj.intValue());
}
//(2)将一个数字序列存储到Vector集合中
Vector v1=new Vector(); //创建一个Vector的集合类对象
int b = System.in.read(); //从键盘获取一个字符
int num =b-'0';
//将字符由b的ASCII码转换为数字,其'0'的ASCII码为48
v.addElement(new Integer(num));
//将一个数字转换为整型对象,存储到vector数据结构中
*/
/*
//(3)、源代码
int b=0;
Vector v=new Vector();
System.out.println("请输入数据:");
while(true){
//1 从键盘读取一个字节
try{
b=System.in.read();
}
catch(IOException e)
{
System.out.println(e.getMessage());
}
//2 将字节转换为Integer 对象,并存储到Vector结构体中
if(b=='\r'||b=='\t')
{
break;//退出循环,即退出while
}
else
{
int num =b-'0';
//由于键盘输入的为字符,1的ASCII码为48
v.addElement(new Integer(num));
//将一个数字转换为整型对象,存储到vector数据结构中
}
}
//3 使用Enumeration接口取出所有Vector集合类存储的对象
int sum=0;
Enumeration e=v.elements();
//a 从Vector取出所有对象元素
while (e.hasMoreElements())// b 判断是否到末尾,取出所有数字
{
Integer i=(Integer)e.nextElement();
//获取一个数字元素对象,并将其转换为Integer包装类对象
sum+=i.intValue(); //读取Integer对象指定的数字
}
System.out.println(sum); //输出结果
*/
//4 常用的方法
Vector v1=new Vector();
Integer integer1=new Integer(1);
//加入为字符串对象
v1.addElement("one");
//加入的为Integer的对象
v1.addElement(integer1);
v1.addElement(integer1);
v1.addElement("two");
v1.addElement(new Integer(2));
v1.addElement(integer1);
v1.addElement(integer1);
//转换为字符,并打印
System.out.println("The Vector v1 is:\n\t"+v1);
//指定位置插入新对象
v1.insertElementAt("three", 2);
v1.insertElementAt(new Float(3.9), 3);
System.out.println("The Vector v1(used method insertElementAt()is:\n\t)"+v1);
//指定对象v1 中删除对象Integer1
//指定位置后的对象依次往后顺延
v1.setElementAt("four", 3);
v1.removeElementAt(integer1);
//从对象v1中删除对象的integer
//由于存在多个integer1,所以从头开始。
//找删除找到的第一个integer1
Enumeration e = v1.elements();
System.out.println("The vector v1 (used method removeElememt()is ");
while(e.hasMoreElements())
System.out.println(e.nextElement()+" ");
System.out.println();
//使用枚举类(Enumeration)的方法取得向量对象的每个元素
System.out.println("The position of Object1(top-to-botton):"+v1.indexOf(integer1));
System.out.println("The position of Object1(tottom-to-top):"+v1.lastIndexOf(integer1));
//按不同的方向查找对象integer1所处的位置
v1.setSize(4);
System.out.println("The new Vector(resized the vector)is:"+v1);
//重新设置v1的大小,多余的元素被抛弃
}
}