Java中用list做hashmap的key是不是不好的做法

这种做法非常ugly!
用来做key的对象,最好是常量或者原生类型,比如String,Integer等等。而List通常是可变的,包括List长度和元素。当List有这些变化之后,hashCode就会变,变成于一个另外的key了。
第二个原因:List计算HashCode时每次都是遍历,性能会有一定影响。String是常量,hashCode只会计算一次。
——————————————————————
另外,使用自定义类型也可以,需要覆盖hashCode()和equals()方法,但是注意里面关联的字段不能变化。


■网友
【Java中用list做hashmap的key是不是不好的做法】 kek要计算hash值的,那么简单点的key性能会好一些,当然业务量不重的情况下用不着这么抠性能。你可以按方便的来。

■网友
key是要计算hash值的,逻辑上相同的不同list对象返回相同的hash(已修正),所以理论上可行,工程上的原因楼上几个答案已经很明白了


    推荐阅读