set如何确保高效保证值唯一性
set保存的就一个value,如果每次进行add时都将新值与原来所有值进行比较,将是一个大大的性能浪费,举例,set中有1000个值了,如果新增一个,那这个值是否要与前1000个进行equals比较呢,相同进行过滤,没有相同则进行加入,这太慢了。
set用到了哈希方法,先进行取hashcode,在将得到的值插入到指定算出来的地址上,如果下次有相同值对应这个地址,则进行equals比较,相同则过滤,不同则通过解决冲突算法,将该值存入起来。
set保存的就一个value,如果每次进行add时都将新值与原来所有值进行比较,将是一个大大的性能浪费,举例,set中有1000个值了,如果新增一个,那这个值是否要与前1000个进行equals比较呢,相同进行过滤,没有相同则进行加入,这太慢了。
set用到了哈希方法,先进行取hashcode,在将得到的值插入到指定算出来的地址上,如果下次有相同值对应这个地址,则进行equals比较,相同则过滤,不同则通过解决冲突算法,将该值存入起来。