公司要建设网站,企业收录网站有什么用,万网域名注册官网网页版,莱芜网络小说作家java 的集合有两类#xff0c;一类是 List#xff0c;还有一类是 Set。前者有序可重复#xff0c;后者无序不重复。当我们在 set 中插入的时候怎么判断是否已经存在该元素呢#xff0c;可以通过 equals 方法。但是如果元素太多#xff0c;用这样的方法就会比较满。
于是有…java 的集合有两类一类是 List还有一类是 Set。前者有序可重复后者无序不重复。当我们在 set 中插入的时候怎么判断是否已经存在该元素呢可以通过 equals 方法。但是如果元素太多用这样的方法就会比较满。
于是有人发明了哈希算法来提高集合中查找元素的效率。 这种方式将集合分成若干个存储区域每个对象可以计算出一个哈希码可以将哈希码分组每组分别对应某个存储区域根据一个对象的哈希码就可以确定该对象应该存储的那个区域。
hashCode 方法可以这样理解它返回的就是根据对象的内存地址换算出的一个值。这样一来当集合要添加新的元素时先调用这个元素的 hashCode 方法就一下子能定位到它应该放置的物理位置上。如果这个位置上没有元素它就可以直接存储在这个位置上不用再进行任何比较了如果这个位置上已经有元素了就调用它的 equals 方法与新元素进行比较相同的话就不存了不相同就散列其它的地址。这样一来实际调用 equals 方法的次数就大大降低了几乎只需要一两次。