Hashtable之哈希表一

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

    }
}

句子

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

优秀文章

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿_毅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值