List、Set、Collections、Comparable、Comparator

List集合特点

  1. 可以重复
  2. 有先后顺序
  3. 有索引值

常见的数据结构

  1. 队列
  2. 数组
  3. 链表
  4. 红黑树
  5. 哈希表

数组结构特点

内存连续,所以查找快,增删慢。

单向链表结构特点

内存不连续,所以增删快,查找慢。

单向链表:一个方向,只知道下一个,不知道上一个

双向链表:前后两个方向都行,既知道下一个,又知道上一个

栈结构特点

先进后出(压箱底)

队列结构特点

先进先出(排队)

Set集合的特点

  1. 不能重复
  2. 不保证先后顺序
  3. 没有索引值

哈希表的特点

特点:快

原因:先分类,再查找。

详细:    1. 哈希表本身是一个长度为16的数组

  1. 每一个小格都是一个桶
  2. 哈希冲突:不一样的对象被放在了一个桶当中
  3. 加载因子:是一个百分比,是桶被占用的百分比
  4. 再哈希:是重新再更加细致地分类。

HashSet集合存储自定义元素

如果存储自定义的类,那么这个类必须要覆盖重写equals和hashCode方法。

可变参数的格式

修饰符 返回值类型 方法名称(参数类型… 可变参数的名称)

本质上其实就是一个数组,语法糖。

集合工具类

java.util.Collections

打乱顺序:shuffle

添加所有:addAll(有可变参数)

排序:    sort(List)

sort(List, Comparator)

Comparator比较器进行排序

Comparable:需要排序的类自己去implements实现它,然后口诀是:升序就是我减他。public int compareTo(T o)

Comparator:需要排序的类自己不用实现它,而是通过第二个参数外部指定,可以使用匿名内部类。口诀:升序就是一减二。public int compare(T o1, To2)

发表评论