Hashtable之哈希表一

时间:2023-02-05 16:47:35

Hashtable类

开心一笑

开心一下啦

一天,牛给驴出了一个难题,问“蠢”字下面两只虫子哪只是公的,哪只是母的。驴绞尽脑汁,还是答不上来。牛骂道:真是头蠢驴,男左女右嘛!

视频教程

大家好,我录制的视频《Java之优雅编程之道》已经在CSDN学院发布了,有兴趣的同学可以购买观看,相信大家一定会收获到很多知识的。谢谢大家的支持……

视频地址:http://edu.csdn.net/lecturer/994

自我介绍

中文名:哈希表,英文名:Hashtable,我是一个很严肃的person,喜欢用数据说话,说白了,我就是一种数据结构,你们可以快速插入和查找数据。都说我长的抽象,下面让你们看看简单的我吧。

//源码
public class Hashtable<K,V>
extends Dictionary<K,V>
implements Map<K,V>, Cloneable, java.io.Serializable {

例一:我最常见的例子是以学生学号为关键字的成绩表,1号学生的记录位置在第一条,10号学生的记录位置在第10条…

例二:
Hashtable之哈希表一
由上面的计算方法便得到下面一张哈希表:
Hashtable之哈希表一

我的特长

Hashtable()

其实可以把我理解成一个篮子,我会构建一个可以装11个(初始容量 11) 和加载因子为 (0.75) 的空哈希表。

Hashtable(int initialCapacity)

用指定初始容量和默认的加载因子 (0.75) 构造一个新的空哈希表。

Hashtable(int initialCapacity, float loadFactor)

用指定初始容量和指定加载因子构造一个新的空哈希表。

Hashtable(Map < ? extends K, ? extends V> t)

构造一个与给定的 Map 具有相同映射关系的新哈希表。

解释下加载因子:加载因子 是对哈希表在其容量自动增加之前可以达到多满的一个尺度,说白了,就是当篮子容量达到0.75时,赶紧扩容

put(K key, V value)

将指定 key 映射到此哈希表中的指定 value,键和值都不可以为 null

get(Object key)

返回指定键所映射到的值,如果此映射不包含此键的映射,则返回 null. 更确切地讲,如果此映射包含满足 (key.equals(k)) 的从键 k 到值 v 的映射,则此方法返回 v;否则,返回 null。

import java.util.Hashtable;

/**
* Created by IYI on 2016/2/28.
*/

public class HashTableTest {

public static void main(String[] args) {
Hashtable<String,String> hashtable = new Hashtable<String, String>();
//放一个key为lan,value为1,到篮子里
hashtable.put("lan","1");
//再放一个key为lan,value为2,到篮子里
hashtable.put("lan","2");
System.out.println(hashtable.get("lan"));
//result:2,说明key相同,会覆盖掉
}
}

remove(Object key)

从哈希表中移除该键及其相应的值

size()

返回此哈希表中的键的数量。

clear()

将此哈希表清空,使其不包含任何键

contains(Object value)

测试此映射表中是否存在与指定值关联的键

containsKey(Object key)

测试指定对象是否为此哈希表中的键

containsValue(Object value)

如果此 Hashtable 将一个或多个键映射到此值,则返回 true

import java.util.Hashtable;

/**
* Created by IYI on 2016/2/28.
*/

public class HashTableTest {

public static void main(String[] args) {
Hashtable<String,String> hashtable = new Hashtable<String, String>();
//放一个key为lan,value为1,到篮子里
hashtable.put("lan","1");
//再放一个key为lan,value为2,到篮子里
hashtable.put("yi","2");
hashtable.put("坏蛋one","3");
hashtable.put("坏蛋two","4");
System.out.println(hashtable.size());//result:4
hashtable.remove("坏蛋one");
boolean haveBedEgg = hashtable.contains("2");//result:true
System.out.println(haveBedEgg);
haveBedEgg = hashtable.containsKey("坏蛋one");//false
System.out.println(haveBedEgg);
boolean haveTwo = hashtable.containsValue("2");//true
System.out.println(haveTwo);
System.out.println(hashtable.size());//result:3
hashtable.clear();
System.out.println(hashtable.size());//result:0
}
}

elements()

返回此哈希表中的值的枚举

entrySet()

返回此映射中包含的键的 Set 视图

keys()

返回此哈希表中的键的枚举

keySet()

返回此映射中包含的键的 Set 视图

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

/**
* Created by IYI on 2016/2/28.
*/

public class HashTableTest {

public static void main(String[] args) {
Hashtable<String,String> hashtable = new Hashtable<String, String>();
//放一个key为lan,value为1,到篮子里
hashtable.put("lan","1");
//再放一个key为lan,value为2,到篮子里
hashtable.put("yi","2");
hashtable.put("坏蛋one","3");
hashtable.put("坏蛋two","4");

Enumeration<String> enumeration = hashtable.elements();
while(enumeration.hasMoreElements()){
System.out.println(enumeration.nextElement());
}

}
}

句子

  • 编程思想的最高境界:将事情做到极致

优秀文章

http://blog.csdn.net/chenssy/article/details/22896871