Java 设置或列出哪些执行速度快?与ArrayList相比,哈希函数如何提高HashSet的性能?

Java 设置或列出哪些执行速度快?与ArrayList相比,哈希函数如何提高HashSet的性能?,java,Java,大家好,请大家用简单的语言描述一下散列技术是如何工作的,以及它对性能的影响。 另外,如果我必须根据性能来决定ArrayList和HashSet。哈希函数与equals()方法和HashMaps一致,哈希函数可以帮助开发人员重写标准的equals逻辑,当两个对象在内存中相同时,该逻辑会进行计算。哈希函数通过允许从使用底层哈希表的HashMap或HashSet中获得O(1)个检索时间来提高效率 这样想: HashMap在引擎盖下面有一个数组。将对象添加到地图时,它们将放置在阵列中。该指数由以下因素决

大家好,请大家用简单的语言描述一下散列技术是如何工作的,以及它对性能的影响。
另外,如果我必须根据性能来决定ArrayList和HashSet。

哈希函数与
equals()
方法和
HashMaps
一致,哈希函数可以帮助开发人员重写标准的equals逻辑,当两个对象在内存中相同时,该逻辑会进行计算。哈希函数通过允许从使用底层哈希表的
HashMap
HashSet
中获得O(1)个检索时间来提高效率

这样想:
HashMap
在引擎盖下面有一个
数组。将对象添加到地图时,它们将放置在阵列中。该指数由以下因素决定:

Object obj;
int arrayIndex = obj.hashCode() % array.length;

当有两个对象具有相同的索引时,它们将被附加到该索引中保存的
LinkedList
。通过使用该hashcode确定索引,然后遍历
对象键的
链接列表
,“如果我必须根据性能在ArrayList和HashSet之间做出决定,则可以快速找到对象。”这是两件不同的事情。必须使用
列表时使用
列表
,必须使用
集合时使用
集合
。然后,您可以查看为每个接口提供的不同实现,看看什么最适合您的需要。您尝试过谷歌搜索吗?我现在的情况是,我需要处理一组对象,而唯一性对我来说不是问题。我可以使用列表来保存它们,也可以使用SET。但我对它们感到困惑,因为我有大约1千件物品。请在性能方面帮助我,我也不必担心订单和排序。只是性能问题…只是一个简单的问题,如果我有超过1k的对象需要放在一个列表/集中,我应该使用哪一个,为什么?只考虑性能。我正在从数据库中提取数据并将其显示在屏幕上。@如果您迭代并显示每个元素,请使用
列表
不要使用
集合
进行提取,因为它们最适合评估包含逻辑和交集。如果您有时只需要获取并显示某个内容,请使用
HashMap
,这样您就可以快速查找值,并为您的响应提供一个键,哈希代码与内存中的对象引用之间是否存在任何关系。@如果选择重写对象的
hashcode()
方法,则两个不同的对象可能具有相同的哈希代码。但是,如果不这样做,则引用内存中相同位置的两个对象将具有相同的哈希代码。最好的做法是,
obj1.equals(obj2)
应该暗示
obj1.hashCode()==obj2.hashCode()
@GopalBarge如果这个答案对你有帮助,你能投赞成票并认为它是正确的吗?非常感谢。