首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Vector,Hashtable,Enumeration知识要点

Vector,Hashtable,Enumeration知识要点

Vector类似于一个数组,但与数组相比在使用上有以下两个优点。
        (1) 使用的时候无需声明上限,随着元素的增加,Vector的长度会自动增加。
        (2)  Vector提供额外的方法来增加、删除元素,比数组操作高效。
Vector类有三个构造函数,分别如下:
        public Vector();
       该方法创建一个空的Vector。        public Vector(int initialCapacity);
       该方法创建一个初始长度为initialCapacity的Vector。
        public Vector(int initialCapacity, int capacityIncrement);
        该方法创建一个初始长度为initialCapacity的Vector,当向量需要增长时,增加capacityIncrement个元素。


(1)  Vector类中添加、删除对象的方法如下:
public void add(int index, Object element)
在index位置添加对象element。
public boolean add(Object o)
在Vector的末尾添加对象o。
public Object remove(int index)
删除index位置的对象,后面的对象依次前提。



(2)  Vector类中访问、修改对象的方法如下:
public Object get(int index)
返回index位置对象。
public Object set(int index, Object element)
修改index位置的对象为element。



(3) 其它方法:
public String toString()
将元素转换成字符串。
public int size()
返回对象的长度。



      【例3.7】操作Vector对象,进行元素的添加、插入、修改和删除。程序输出结果如图3.6所示。源程序代码如下:
//程序文件名为UseVector.java
import java.util.Vector;//引入JDK的Vector类

public class UseVector
{
public static void main(String[] args)
{

Vector vScore = new Vector();
vScore.add(" 86"); //添加元素
vScore.add(" 98"); //添加元素
vScore.add(1, " 99"); //插入元素
//输出结果
for (int I = 0; I < vScore.size(); I++)
{
       System.out.print(vScore.get(i) + "   ");
}
vScore.set(1, " 77"); //修改第二个元素
vScore.remove(0); //删除第一个元素

System.out.println(″\n修改并删除之后″);
for (int I = 0; I< vScore.size(); I++)
{
System.out.print(vScore.get(i) + "   ");
}
System.out.println(" \n转换成字符串之后的输出\n"  + vScore.toString());
       }
};




3.3.2  Hashtable类
        Hashtable类存储的是对象的名-值对。将对象的名和它的值相关联同时存储,并可以根据对象名来提取它的值。在Hashtable中,一个键名只能对应着一个键值,然而一个键值可以对应多个键名,键名必须是惟一的。构造函数以及常用方法如下:
public Hashtable()
构建散列表。
public Hashtable(int initialCapacity)
构建长度为initialCapacity的散列表。
public int size()


返回散列表的名的个数。
public Object remove(Object key)
删除散列表中key名及其对应的value值。
public Object put(Object key,Object value)
将对象名key和对象值value存放到散列表中。
public Object get(Object key)
返回散列表key名对应的值。
public String toString()
转换成字符串。

hScore.put("李二","98");
hScore.put("海飞","99");
System.out.println("转换成字符串之后的输出:" + hScore.toString());
hScore.put("李二","77");
hScore.remove("张一");
System.out.println("修改并删除之后");
System.out.println("转换成字符串之后的输出:" + hScore.toString());
         }
     }



       【例3.8】操作Hashtable对象,进行添加、修改、删除等操作,输出结果如图3.7所示。源程序代码如下:
//程序文件名为UseHashtable.java
import java.util.Hashtable;

public class UseHashtable
{
public static void main(String[] args)
{
             Hashtable hScore = new Hashtable();
       hScore.put("张一","86");




3.3.3  Enumeration接口
        实现Enumeration接口的对象生成一系列元素,通过nextElement()方法依次读取下一个元素。只有以下两个方法:
         public boolean hasMoreElements()
         测试是否还有元素。
         public Object nextElement()
         返回枚举的下一个元素。
         Enumeration接口及其方法通常与Vector、Hashtable一起连用,用来枚举Vector中的项和Hashtable中的键名,例如:
         for (Enumeration e = v.elements() ; e.hasMoreElements() ;)
                           System.out.println(e.nextElement());

       【例3.9】使用Enumeration接口枚举Vector中的对象和Hashtable对象中的键名,并进行输出,结果如图3.8所示。源程序代码如下:
//程序文件名UseEnumeration.java
import java.util.*;
public class UseEnumeration
{
public static void main(String[] args)
{
Vector vScore = new Vector();
vScore.add("86");
vScore.add("98");

             vScore.add(1,"99");
System.out.println("Vector:" + vScore.toString());
             for (Enumeration e = vScore.elements() ; e.hasMoreElements() ;)
System.out.println(e.nextElement());
Hashtable hScore = new Hashtable();
hScore.put("张一","86");
hScore.put("李二","98");
hScore.put("海飞","99");
System.out.println("Hashtable:" + hScore.toString());

for (Enumeration e = hScore.keys() ; e.hasMoreElements() ;)
{
String str = (String)e.nextElement();
System.out.print(str + ":");
System.out.println(hScore.get(str));
}
      }
}

返回列表