zoukankan      html  css  js  c++  java
  • HashTable类

    HashTable类不紧可以像Vector类一样动态的存储一系列的对象,而且对存储的每一个对象(称为值)都安排另一个对象(称为关键字)与它相关联。

    用做关键字的类必须覆盖Object.hashCode方法和Object.equals方法,

    因为要取出数据时,传递给get()方法的参数要跟里面的关键字比较,这时就要使用equals()方法。另外如果这两个关键字相等,他们的hashcode()返回值也要相等。

    编程举例:使用自定义类作为hashtable()关键字的类。

    public class MyKey

    {

    String name=null;

    int age=0;

    public boolean equals(Object obj) //作为关键字的类要覆盖该方法

    {

    if(obj instanceof MyKey) //如果它是mykey类型的,则先要转换为mykey类型,因为编译器不知道他是什么类型的

    {

    MyKey objtemp=(MyKey)obj; //然后下面再比较里面的内容是否相等。

    if(name.equals(objtemp.name)&&age==objtemp.age)

    {

    return true; //如果内容也相等,则相等

    }

    else

    {

    return false; //否则不等

    }

    }

    else

    {

    return false; //如果它不是mykey类型的,则肯定不相等,因为类型都不同

    }

    }

    public int hashCode() //作为关键字的类要覆盖该方法

    {

    return name.hashCode()+age; //因为string类已经覆盖了hashcode()方法,stringbuffer类没有覆盖该方法,所以不可以用做关键字类。

    //如果name和age有一个不等,返回值则不等

    }

    public MyKey(String name,int age) //覆盖构造函数

    {

    this.name=name;

    this.age=age;

    }

    public String toString() //如果不覆盖这个方法,则会产生乱码

    {

    return name+","+age;

    }

    }

    import java.util.*;

    public class HashTableTest

    {

    public static void main(String[] args)

    {

    Hashtable numbers=new Hashtable(); //新建一个hashtable类的实例

    numbers.put(new MyKey("ZhangSan",18),new Integer(1)); 装入数据

    numbers.put(new MyKey("LiSi",20),new Integer(2));

    numbers.put(new MyKey("WangWu",16),new Integer(3));

    Enumeration e=numbers.keys();

    while(e.hasMoreElements())

    {

    MyKey Key=(MyKey)e.nextElement();

    System.out.print(Key+"=");

    System.out.println(numbers.get(Key));

    }

    }

    }

     

  • 相关阅读:
    大数据时代的艺术金融
    与“数”同行:大数据驱动大学变革
    与“数”同行:大数据驱动大学变革
    财务信息化:大数据小时代
    财务信息化:大数据小时代
    Python导出DBF文件到Excel的方法
    Python导出DBF文件到Excel的方法
    SolrJ的入门
    Spring Data Solr入门
    使用solr进行配置文件
  • 原文地址:https://www.cnblogs.com/borter/p/9434188.html
Copyright © 2011-2022 走看看