`
xiang37
  • 浏览: 430804 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

HashTable的动态存储

阅读更多

StringBuffer 不能用作关键字类

 

HashTableTest.java

package Bean;

import java.util.Enumeration;
import java.util.Hashtable;


public class HashTableTest {

 public static void main(String[] args)
 {
   Hashtable<MyKey, Integer> numbers = new Hashtable<MyKey, Integer>();
    MyKey myKeyTest = new MyKey("Books",22);
      numbers.put(myKeyTest, new Integer(1));
      numbers.put(new MyKey("Mcrady",23), new Integer(1));//关键值不能相等,值可以相等;主要是覆盖了MyKey中的hashCode和equals方法。 
      numbers.put(new MyKey("Jeson1",21), new Integer(3));
      numbers.put(new MyKey("Jeson2",21), new Integer(4));
      numbers.put(new MyKey("Jeson3",21), new Integer(5));
      numbers.put(new MyKey("Jeson4",21), new Integer(6));
      
      Enumeration<MyKey> enume = numbers.keys();
      MyKey mykey = new MyKey();
     
      while(enume.hasMoreElements())
      {             
       try
       {
       mykey = (MyKey) enume.nextElement();
       }
       catch(Exception e)
       {
        System.out.println(e.getMessage());
       }
       System.out.println( mykey.getName()+"'age is " +mykey.getAge()+ " Key is:" + numbers.get(mykey));
      }     
      System.out.println(numbers.get(new MyKey("Jeson4",21)));

  
 }
}

 

 

MyKey.java

package Bean;

public class MyKey {
 private String name = null;
 private int age = 0;
 
 public MyKey()
 {  
 } 
 public MyKey(String name, int age)
 {
  this.name = name;
  this.age = age;
 }
 
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public Integer getAge() {
  return age;
 }
 public void setAge(Integer age) {
  this.age = 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
    return false;
  }
  else
   return false;
 }
 
 public int hashCode() 
 {
  return name.hashCode() + age;
 }

}

分享到:
评论

相关推荐

    hashtable存储数据.rar

    这个压缩包文件“hashtable存储数据.rar”很可能包含了示例代码,展示了如何使用`Hashtable`来存储和操作数据。 `Hashtable`主要特点: 1. **非空键值对**:`Hashtable`不接受null键或null值。试图插入null键或null...

    hashtable存储IP

    标题"hashtable存储IP"指出,我们将讨论如何利用哈希表来存储IP地址,以实现高效的数据操作。 IP地址是由32位二进制数组成的,通常被分为四组,每组8位,用点分十进制表示。例如,192.168.1.1。在处理IP地址时,...

    WinFormHashTable最简单用法,.net hashtable ,hashtable ,hashtable用法

    哈希表(Hashtable)是.NET框架中的一种常用数据结构,主要用作键值对存储,它提供了快速的数据存取方式。在WinForm应用程序中,我们可能会利用Hashtable来管理各种对象,尤其是在需要高效查找和操作数据时。下面将...

    C# json 转hashtable

    与此相关的,`Hashtable`是.NET框架中的一个古老的集合类,用于存储键值对,它在早期的.NET应用中十分常见。然而,随着.NET Framework的发展,`Dictionary, TValue&gt;`逐渐取代了`Hashtable`,因为后者不支持泛型,且...

    C# .net HashTable

    在C# .NET编程环境中,`HashTable`类是一个非同步、无序的键值对集合,它提供了快速的数据存储和检索功能。`HashTable`类是基于哈希表数据结构实现的,这使得它能够通过键(key)来快速查找值(value)。在本文中,...

    HashTable

    1. 动态扩容:当哈希表的负载因子(元素数量/哈希表大小)超过某个阈值时,应进行扩容,以保持低冲突率,提高性能。 2. 再哈希:在解决冲突时,可以设计多个哈希函数,当第一个函数发生冲突时,使用第二个函数,...

    java Hashtable的泛型化

    在Java编程语言中,`Hashtable`是`Collections`框架的一部分,它是一个同步的键值对存储容器。在早期的Java版本中,`Hashtable`并没有直接支持泛型,这意味着你可以在其中存储任何类型的键(`Object`)和值(`Object...

    HashMap和HashTable底层原理以及常见面试题

    2. 性能:HashMap的性能比HashTable好,因为HashMap使用数组和链表来存储键值对,而HashTable使用链表来存储键值对。 3. null键:HashMap允许存放null键和null值,而HashTable不允许存放null键和null值。 常见面试...

    asp.net遍历hashtable

    在ASP.NET中,Hashtable是一种常用的数据结构,它是一个键值对集合,允许程序员存储和检索对象。本篇文章将深入探讨如何在ASP.NET中遍历Hashtable,以及相关的重要知识点。 首先,理解Hashtable的基本概念至关重要...

    hashMap和hashTable的区别

    `HashMap` 和 `HashTable` 都是 Java 集合框架中非常重要的数据结构,它们都实现了 `Map` 接口,用于存储键值对。尽管它们在功能上有很多相似之处,但在实现细节和性能特性上存在显著差异。 #### 二、主要区别 1. ...

    C#-Hashtable应用

    Hashtable使用哈希表存储数据,通过计算键(key)的哈希码来定位元素的位置。由于哈希码是快速计算的,因此插入、查找和删除操作的时间复杂度通常为O(1),这使得Hashtable成为处理大量数据的理想选择。 在C#中创建...

    HashMap和HashTable的区别和不同

    在Java编程中,`HashMap`与`HashTable`作为两种常用的数据结构,经常被用来存储键值对数据。尽管它们在功能上相似,但在实现细节、性能表现以及使用场景方面存在显著差异。本文将深入探讨两者之间的区别,帮助读者更...

    c# asp.net hashtable对Datalist分页

    2. 创建Hashtable:在C#代码中,创建一个Hashtable来存储分页参数,如: ```csharp Hashtable pageInfo = new Hashtable(); pageInfo.Add("PageSize", 10); // 每页记录数 pageInfo.Add("CurrentPage", n); // 当前...

    hashmap与hashtable区别

    在Java编程语言中,`HashMap`和`Hashtable`是两种非常重要的数据结构,它们都用于存储键值对。然而,在实际应用过程中,这两种数据结构有着本质的不同,下面将详细介绍这些差异。 #### 1. 历史背景及实现原理 - **...

    哈希表hashtable实现

    哈希表(Hash Table)是一种数据结构,它...在C语言中,这些概念可以通过结构体和链表来实现,提供高效的动态存储管理。通过阅读和理解"hashtable.c"和"hashtable.h",我们可以深入了解这一核心数据结构的实现细节。

    HashMap与HashTable区别

    在Java编程语言中,`HashMap`和`HashTable`是两种非常重要的数据结构,它们都实现了`Map`接口,并提供了键值对的存储方式。这两种数据结构虽然相似,但在实现细节和使用场景上存在显著差异。下面将详细介绍`HashMap`...

    HashMap与HashTable和HashSet的区别

    `HashTable`内部使用了一个`Entry`数组来存储键值对,通过计算键值对的哈希码确定元素在数组中的位置。当需要添加元素时,`HashTable`会根据键的哈希码将其放置到相应的位置上;查找元素时,同样利用键的哈希码快速...

    hashtable和hashmap的区别

    在Java编程语言中,`Hashtable`和`HashMap`是两种非常重要的数据结构,它们都实现了`Map`接口,用于存储键值对。尽管它们有着相似的功能,但在实现细节和应用场景上存在显著差异。接下来,我们将详细探讨`Hashtable`...

    用Session、Hashtable实现购物车功能

    总之,使用Session和Hashtable实现购物车功能是一种常见且实用的方法,它充分利用了Web服务器的存储能力,保证了用户在多个页面间跳转时购物车数据的一致性。通过不断实践和优化,我们可以构建出高效、稳定的购物车...

    hashtable序列化与反序列化

    在IT领域,序列化和反序列化是两个关键的概念,特别是在处理对象持久化、网络传输或数据存储时。本文将详细探讨标题所提及的“hashtable序列化与反序列化”,并提供一个基本的示例。 首先,让我们理解什么是序列化...

Global site tag (gtag.js) - Google Analytics