Hashtable中存储的是键-值对,和C++中的map类似,map中的存储的也是键-值对。
键是唯一的,值不是唯一的
import java.util.Hashtable;
Hashtable ht = new Hashtable(); //构造函数
Hashtable ht = new Hashtable(10); //构造函数
ht.put(key, value); //存放键-值对
ht.remove(key); //根据key来删除这个元素
value = ht.get(key); //根据key取得值
ht.toString(); //把所有元素转化成字符串
!!!!!主要注意的是:在删除的时候,由于是按照key来删除,因此一定要注意, 我在删除的时候反了一个错:
由于本例中的key类型为连续的数值,即0---6,在删除的是和之前Vector的混淆了。删除时使用的参数是key,因此和个数(.size())没有关系。!!!!!!!!!!!!!!!!!!
eg.
------------------------------------------------------------------------------
import java.util.Hashtable;
public class senventh
{
public static void main(String args[])
{
Hashtable ht = new Hashtable(10);
ht.put(0, "cuihao");
ht.put(1, "handandan");
ht.put(2, "wupan");
ht.put(3, "mahong");
ht.put(4, "jinjia");
ht.put(5, "yangsisi");
ht.put(6, "xuexiang");
System.out.println("用循环输出的效果如下:");
int length = ht.size();
for(int i = 0; i < length; ++ i)
{
System.out.println(i + ": " + ht.get(i));
}
System.out.println("-----------------------------------------");
System.out.println("使用toString()函数输出效果如下:");
System.out.println(ht.toString());
System.out.println("------删除所有元素-----------------------------------");
//删除一定要注意! 这里之前写的是i < ht.size(); size是变化的,因此,删除后打印时只打印了4个,这是错误的!
for(int i = 0; i < length; ++ i)
{
System.out.println("delete obj[" + i + "]");
ht.remove(i);
}
System.out.println("--------删---除---后---------------------------");
System.out.println(ht.toString());
}
}
删除元素时要根据泛型的类型不同而使用不同的方式!!!