Java: HashSet

  • 链表和数组按照意愿排列元素次序。当要查看某个元素,但忘记位置就需要访问所有元素查找,这将消耗大量时间。
  • 散列表可以快速查找所需要的对象,不关心元素顺序时才应该使用。
  • 散列表用链表数组实现,每个列表被称为(bucket)。桶数为收集具有相同散列值的桶的个数。为每个对象计算散列码后,放在第(散列码/桶总数的余数)个桶中。桶中有固定量的槽(slot),插入新对象但桶已占满的情况称为散列冲突。这时需要查看这个对象是否已存在。
  • 根据装填因子(默认值0.75),表超过75%被填入需要再散列,创建桶更多的表。
  • 散列集迭代器依次访问所有的桶
  • 更改元素时,散列码会改变,元素在数据结构中位置也改变。

猜你喜欢

转载自blog.csdn.net/baidu_25104885/article/details/84957481