A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我找到答案了,但是看不明白,求指导

4 个回复

倒序浏览
HashMap低层是hash表,有什么不明白的?常见put()方法,源码如下:
回复 使用道具 举报
经济 发表于 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表的存储结构?
回复 使用道具 举报
底层数据结构是哈希表。
回复 使用道具 举报
底层数据结构是哈希表。哈希表是有哈希算法实现的。哈希算法:集合存储的每个对象可以计算出哈希值,将集合分成若干个区域,每个区域对应于某些哈希值,根据哈希值就可以确定对象具体存储在那个区域。不要问我是谁,请叫我雷锋
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马