shu*_*rok 3 java integer hashset
我正在学习 Java 中的容器,最近我读到 HashSet 没有按顺序提供元素。Integer有趣的是我随机制作的 HashSet 被排序了。当我将其类型更改为Double 时,打印的 HashSet 不再排序。我的问题是:那么 HashSet 对各种类型的工作方式是否不同?
HashSet使用HashMap内部。HashMap使用每个对象的hashCode()方法将其元素存储在哈希表中。
对于intand double,它们被自动装箱到Integer和Double类中。当您进行HashSet的intS,它使用整型的的hashCode()方法,该方法仅返回int。因此,如果您添加ints,它们将按顺序存储。但是对于double,Double 的 hashCode()方法要复杂得多,因为 double 在内存中的表示方式。
| 归档时间: |
|
| 查看次数: |
3180 次 |
| 最近记录: |