Java集合——Set 接口、HashSet 实现类、TreeSet 实现类、LinkedHashSet 实现类

在这里插入图片描述

  • Set 接口属于抽象类
  • Set 下面有两个实现类,HashSet 和 TreeSet

一、Set 接口

1、Set 概述

  • 一个不包含重复元素的 Collection

2、Set 案例

  • 存储字符串并遍历
  • 存储自定义对象并遍历

二、HashSet 实现类

1、HashSet 类概述

  • 不保证 set 的迭代顺序
  • 特别是它不保证该顺序恒久不变

2、HashSet 如何包装元素的唯一性

  • 底层数据结构是哈希表(元素是链表的数组)

  • 哈希表依赖于哈希值存储

  • 添加功能底层依赖两个方法:

    int hashCode()

    boolean equals(Object obj)

三、LinkedHashSet 实现类

1、概述

  • 元素有序唯一
  • 由链表保证元素有序
  • 由哈希表保证元素唯一

四、TreeSet 实现类

1、概述

  • 使用元素的自然顺序对元素进行排序
  • 或者根据创建Set 时提供的 Comparator 进行排序
  • 具体取决与使用的构造方法

2、TreeSet 是如何保证元素的排序和唯一性的

  • 底层数据结构是红黑树(红黑树是一种自平衡的二叉树)

猜你喜欢

转载自blog.csdn.net/weixin_43860260/article/details/92076832