美文网首页
一个简单的HashTable

一个简单的HashTable

作者: xin激流勇进 | 来源:发表于2019-05-10 14:46 被阅读0次
package structures;

import java.util.TreeMap;

public class HashTable<K, V> {
    private TreeMap<K, V>[] hashtable;
    private int M;
    private int size;

    public HashTable(int M) {
        this.M = M;
        size = 0;
        hashtable = new TreeMap[M];
        for (int i = 0; i < M; i++) {
            hashtable[i] = new TreeMap<>();
        }
    }

    public HashTable() {
        this(97);
    }

    private int hash(K key) {
        return (key.hashCode() & 0x7fffffff) % M;
    }

    public int getSize() {
        return size;
    }

    public void add(K key, V value) {
        TreeMap<K, V> map = hashtable[hash(key)];
        if (map.containsKey(key)) {
            map.put(key, value);
        } else {
            map.put(key, value);
            size ++;
        }
    }

    public V remove(K key) {
        V res = null;

        TreeMap<K, V> map = hashtable[hash(key)];

        if (map.containsKey(key)) {
            res = map.remove(key);
            size ++;
        }

        return res;
    }

    public void set(K key, V value) {
        TreeMap<K, V> map = hashtable[hash(key)];
        if (!map.containsKey(key)) {
            throw new IllegalArgumentException("key is not exists");
        }

        map.put(key, value);
    }

    public boolean contains(K key) {
        return hashtable[hash(key)].containsKey(key);
    }

    public V get(K key) {
        return hashtable[hash(key)].get(key);
    }
}

相关文章

  • 一个简单的HashTable

  • Hashmap&Hashtable

    HashMap和HashTable的区别一种比较简单的回答是: HashMap是非线程安全的,HashTable是...

  • HashMap

    Map基础 基础的Map有一下2种 HashMap HashTable 最简单的区别就是HashTable是线程安...

  • HashTable, HashMap, ConcurrentHa

    1. HashTable和HashMap的区别 通过和HashMap的比较来简单过一下HashTable吧,毕竟已...

  • Hashtable源码分析

    Hashtable Hashtable简介 和HashMap一样,Hashtable也是一个散列表,它存储的内容是...

  • Solidity语法(三)其他类型

    Mapping mapping,简单地说mapping就是一种hashtable, 由一个key对应一个value...

  • Java 拾遗二

    1. HashMap 和 HashTable 的区别 HashMap 是 HashTable 的一个轻量级的实现;...

  • 集合框架

    注:HashTable(×)Hashtable(√)Map

  • Java - Map 集合简单介绍

    本文简单介绍一下 Java 中 Map 集合,包括 HashMap,HashTable,LinkedHashMap...

  • php hashtable 和zval

    hashtable hashtable 包括 : 一个 gc 结构 ,是帮助垃圾回收而使用的 一个联合体 掩码 桶...

网友评论

      本文标题:一个简单的HashTable

      本文链接:https://www.haomeiwen.com/subject/umdaoqtx.html