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));

    }

    }

    }

     

  • 相关阅读:
    LeetCode 485. Max Consecutive Ones
    LeetCode 367. Valid Perfect Square
    LeetCode 375. Guess Number Higher or Lower II
    LeetCode 374. Guess Number Higher or Lower
    LeetCode Word Pattern II
    LeetCode Arranging Coins
    LeetCode 422. Valid Word Square
    Session 共享
    java NIO
    非阻塞IO
  • 原文地址:https://www.cnblogs.com/borter/p/9434188.html
Copyright © 2011-2022 走看看