-
我在 Python 里想用一个列表当字典的 key 来做分组、又想把一批列表丢进集合去重,结果两处都甩给我一个 TypeError unhashable type list,我一开始以为是 Python 小题大做后来才真正想明白可变的东西天生就没法做哈希定位的依据的深度复盘
我有两个需求:一是想按一组坐标或一组标签给数据分组、自然想到用那组值(一个列表)当字典 key 比如 groups[[1,2]]=...;二是有一批列表想去重、自然想到丢进 set。结果一运行两处都报 TypeError: unhashable type: 'list'。我当时有点恼火、觉得不就是拿列表当 key、放列表进集合吗至于报错,以为语法错了(没有)、以为版本限制(各版…- 0
- 0
-
我重写了 equals 让两个字段相同的对象相等,把它当 HashMap 的 key 存进去,再用一个一模一样的 key 去取却拿到了 null:一次 Java 只重写 equals 没重写 hashCode 的深度复盘
我用一个自定义的 OrderKey(含 userId 和 date)当 HashMap 的 key,为了让两个字段都相同的 key 被视为同一个 key,我重写了 equals。可线上诡异:map.put(key1, value) 存进去后,用一个字段完全相同的新 key2 去 get 居然返回 null,而 key1.equals(key2) 明明是 true。查清才明白:我只重写了 equal…- 0
- 0
哈希
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!


