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()
其实可以把我理解成一个篮子,我会构建一个可以装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());
}
}
}
句子
- 编程思想的最高境界:将事情做到极致