黑马程序员技术交流社区

标题: 在Java中,HashMap是如何工作的? [打印本页]

作者: 路人乙1989    时间: 2015-6-2 01:38
标题: 在Java中,HashMap是如何工作的?
我找到答案了,但是看不明白,求指导
作者: 经济    时间: 2015-6-2 10:03
HashMap低层是hash表,有什么不明白的?常见put()方法,源码如下:
作者: 经济    时间: 2015-6-2 10:05
经济 发表于 2015-6-2 10:03
HashMap低层是hash表,有什么不明白的?常见put()方法,源码如下:

public V put(K key, V value) {
        if (key == null)
            return putForNullKey(value);
        int hash = hash(key.hashCode());
        int i = indexFor(hash, table.length);
        for (Entry<K,V> e = table; e != null; e = e.next) {
            Object k;
            if (e.hash == hash && ((k = e.key) == key || key.equals(k))) {
                V oldValue = e.value;
                e.value = value;
                e.recordAccess(this);
                return oldValue;
            }
        }

        modCount++;
        addEntry(hash, key, value, i);
        return null;
    }


类似的,你可以查看其他方法的源码?我没明白你的意思?你是说源码看不懂?还是不明白hash表的存储结构?
作者: 武汉小菜鸟    时间: 2015-6-2 10:49
底层数据结构是哈希表。
作者: 武汉小菜鸟    时间: 2015-6-2 10:54
底层数据结构是哈希表。哈希表是有哈希算法实现的。哈希算法:集合存储的每个对象可以计算出哈希值,将集合分成若干个区域,每个区域对应于某些哈希值,根据哈希值就可以确定对象具体存储在那个区域。不要问我是谁,请叫我雷锋




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2