小宅

V1

2023/03/12阅读:9主题:默认主题

set && TreeSet

栈是一种什么模型?

先进后出

队列是一种什么模型?

队列是一种数据先进先出的模型

数组是一种什么模型?

数组是一种,查询快,增删慢的模型

链表是一种什么模型?(单向链表)

链表是一种增删快, 查询慢的模型

linkedList 是链表模型

泛型使用的地方

  • 类后面 (泛型类)
  • 方法声明上 (泛型方法)
  • 接口后面(泛型接口)

集合类体系结构

set 集合特点

  • 可以去除重复
  • 存取顺序不一致
  • 没有带索引的方法, 不能通过for循环,和 索引操作

TreeSet 集合特点

  • 可以去除重复
  • 没有带索引的方法, 不能通过for循环,和 索引操作
  • 可以将元素按照规则进行排序

比较器排序Comparator的使用

  • TreeSet 的带参构造方法使用的是比较器排序
  • 比较器排序就是让集合构造方法接收Comparator,进行重写
  • 重写方法时,一定要注意排序规则必须按照要求的主要条件和次要条件来写

自然排序

如果要排序需要重写

compareTo方法

  public int compareTo(Student o) {
    int result = this.age - o.age
    return result
  }

HashSet

  • 底层数据结构是哈希表
  • 不能保证存储和取出的顺序完全一致
  • 没有带索引的方法
  • 元素唯一

hash 值

hash 表

  • jdk 8 之前采用的是数组 + 链表
  • jdk 8 之后采用了 数组 + 链表 + 红黑树 进行实现

快捷键

双击shift // 搜索类 command + option + m // 提出方法

分类:

后端

标签:

后端

作者介绍

小宅
V1