JAVA高级01_06 Hashtable类 2011-4-20
2011-04-20 22:52
961 查看
Hashtable类
不仅可以像Vector一样动态存储一系列的对象,而且对存储的每一个对象
(称为值)都要安排另一个对象(称为关键字)与之相关联。
Hashtable numbers = Hashtable();
numbers.put("one",new Integer(1));
numbers.put("two",new Integer(2));
Hashtable中不能有重复的关键字,put中若有相同的关键字将会修改原有的值。
Integer n = (Integer)numbers.get("two");
if( n != null)
System.out.println("two = " + n);
用作关键字的类必须覆盖Object.hashCode方法和Object.equals方法
编程举例:使用自定义类作为Hashtable的关键字
public class MyKey
{
private String name = null;
private int age = 0;
Public MyKey(String name,int age)
{
this.name = name;
this.age = age;
}
public String toString()
{
return name + "," +age;
}
public boolean equals(Object obj)
{
if(obj instanceof MyKey)
{
MyKey objTemp = (MyKey)obj;
if(name.equals(objTemp.name) && age == objTemp.age)
{
return true;
}
else
{
reture false;
}
}
else
{
return false;
}
}
public int hashCode()
{
return name.hashCode() + age;
}
}
StringBuffer类不能作为Hashtable关键字
public static void main(String[] args)
{
Hashtable numbers = new Hashtable();
number.put(new MyKey("zhangsan",18),new Integer(1));
number.put(new MyKey("lisi",15),new Integer(2));
number.put(new MyKey("wangwu",20),new Integer(3));
Enumeration e = number.keys();
while(e.hasMoreElements())
{
MyKey key = (MyKey)e.nextElement();
System.out.print(key.toString() + "=");
System.out.println(numbers.get(key));
}
}
不仅可以像Vector一样动态存储一系列的对象,而且对存储的每一个对象
(称为值)都要安排另一个对象(称为关键字)与之相关联。
Hashtable numbers = Hashtable();
numbers.put("one",new Integer(1));
numbers.put("two",new Integer(2));
Hashtable中不能有重复的关键字,put中若有相同的关键字将会修改原有的值。
Integer n = (Integer)numbers.get("two");
if( n != null)
System.out.println("two = " + n);
用作关键字的类必须覆盖Object.hashCode方法和Object.equals方法
编程举例:使用自定义类作为Hashtable的关键字
public class MyKey
{
private String name = null;
private int age = 0;
Public MyKey(String name,int age)
{
this.name = name;
this.age = age;
}
public String toString()
{
return name + "," +age;
}
public boolean equals(Object obj)
{
if(obj instanceof MyKey)
{
MyKey objTemp = (MyKey)obj;
if(name.equals(objTemp.name) && age == objTemp.age)
{
return true;
}
else
{
reture false;
}
}
else
{
return false;
}
}
public int hashCode()
{
return name.hashCode() + age;
}
}
StringBuffer类不能作为Hashtable关键字
public static void main(String[] args)
{
Hashtable numbers = new Hashtable();
number.put(new MyKey("zhangsan",18),new Integer(1));
number.put(new MyKey("lisi",15),new Integer(2));
number.put(new MyKey("wangwu",20),new Integer(3));
Enumeration e = number.keys();
while(e.hasMoreElements())
{
MyKey key = (MyKey)e.nextElement();
System.out.print(key.toString() + "=");
System.out.println(numbers.get(key));
}
}
相关文章推荐
- JAVA高级01_03 String类学习 2011-4-20
- JAVA高级01_04 基本数据类型的对象包装类 2011-4-20
- JAVA高级01_05 集合类 2011-4-20
- [零基础学JAVA]Java SE面向对象部分-13.面向对象高级(01) 推荐
- [零基础学JAVA]Java SE面向对象部分-18.面向对象高级(06) 推荐
- 张孝祥_Java多线程与并发库高级应用01
- Java笔记06-面向对象01
- JAVA高级01_09 Math与Random类 学习API的方法 2011-4-21
- JAVA高级02_01 File类 2011-4-22
- three.js 06-01 之 ConvexGeometry 高级几何体
- JAVA笔记一(01-06 java的基本概念和数据类型)
- JAVA高级视频02_IO输入与输出日记1(02-01到02—03)
- JAVA高级视频02_IO输入与输出 06 ByteArrayInputStram和ByteArrayOutputStream 学习笔记
- [零基础学JAVA]Java SE面向对象部分-06.面向对象基础(01)
- JAVA高级01_07 Properties类 System和Runtime类 2011-4-21
- JAVA高级视频02_IO输入与输出日记3(02-06到10)
- JAVA高级01_08 与日期和时间有关的类 2011-4-21
- JAVA高级视频02_IO输入与输出 06 PipedInputStream和PipedOutPutStream 学习笔记
- 06-01 Java 二维数组格式、二维数组内存图解、二维数组操作
- JAVA高级视频_IO输入与输出01 学习笔记