美文网首页
自定义HashMap

自定义HashMap

作者: 7i昂 | 来源:发表于2019-11-06 18:05 被阅读0次
package 自定义HashMap;


import java.util.HashMap;

public class MyHashMap<K,V>{
    private static Integer CAPACITY=8;
    private int size=0;
    public MyHashMap() {
        this.table = new Entry[CAPACITY];
    }

    private Entry<K,V>[] table;
    class Entry<K,V>{
        private K k;
        private V v;
        private Entry<K,V> next;
        public Entry(K k, V v, Entry<K, V> next) {
            this.k = k;
            this.v = v;
            this.next = next;
        }


    }
    public int size(){
        return size;
    }
    public V get(K key){
        int hashCode=key.hashCode();
        int index=hashCode%table.length;
        for (Entry<K,V> entry=table[index];entry!=null;entry=entry.next){
            if(entry.k.equals(key)){
                return entry.v;

            }
        }
        return null;
    }
    public V put(K key,V value){
        int hashCode=key.hashCode();
        int index=hashCode%table.length;
        for (Entry<K,V> entry=table[index];entry!=null;entry=entry.next){
            if(entry.k.equals(key)){
                V oldValue=entry.v;
                entry.v=value;
                return oldValue;

            }
        }
        addEntry(key,value,index);

        return null;
    }

    private void addEntry(K key, V value, int index) {
        table[index]=new Entry<>(key,value,table[index]);
        size++;
    }

    public static void main(String[] args) {
        MyHashMap<String,String> map=new MyHashMap<>();
        for (int i=0;i<10;i++){
            map.put("key"+i,"value"+i);
        }
        System.out.println(map.toString());
    }

}

相关文章

网友评论

      本文标题:自定义HashMap

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