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(已修正),所以理论上可行,工程上的原因楼上几个答案已经很明白了
推荐阅读
- 『黄金时间』请认准这个蓝色的标志! 黄金时间丨同行业中用水最少的企业
- dart这编程语言现在发展怎么样了,语法与Java,c#很相似,甚至更简洁
- Java工程师和C++工程师在工作上有啥区别哪个更适合自身发展
- 27岁,转行java的血与泪,该何去何从
- 怎样统计工程中未使用的java类
- 新互联网网站用Java还靠谱么对比Php,Python,Ruby的话
- 我想学java和安卓软件开发?
- 学计算机专业,java那些和网站开发选台式还是笔记本好
- JAVA设计思路
- 本人大专毕业一年,想要去培训,定了JAVAEE和安卓两个方向,应该学那个纠结,求帮助
