Java集合类

胡泽宇 2020年02月12日 45次浏览
容器类:
    装对象。 
    删除对象。
    装了几个对象。
    取对象。 
    看容器是否为空。 
    看是否包含某个对象。
    清空容器。
    遍历。

Java的集合类

总结

1

集合的根接口 : Collection
Collection就是体现所列出作为容器的方法。

6个接口 + 6个实现类 + 3个工具接口(Iterator、Comparable、Comparator)
过气的3个 Vector(ArrayList替代)、Stack(ArrayDeque替代)、Enumeration(Iterator替代)

6个接口

根接口: Collection
Set 1.集合元素不能重复 2.元素无序
List 1.集合元素可以重复 2.元素有序,按照顺序添加,每个元素都有索引
Queue 队列 FIFO 先进先出
Set的子接口: SortedSet
Queue的子接口: Deque 双端队列:即是栈,也是队列

Set的两个实现类

  1. HashSet: 基于hash表(数组)。特征:快速存、取元素。
  2. TreeSet: 略慢。但它会自动队元素从小到大排序。
    要求比较元素大小(实现方式二选一):
    1. 元素本身可以排序(自然排序),此时要求实现Comparable接口。
    2. 元素本身不能排序(定制排序),由Comparator负责排序。要求创建TreeSet提供一个Comparator对象

List的两个实现类

  1. ArrayList : 基于数组实现,性能非常好。
  2. LinkedList : List和Deque方法都能用,性能略差。

Deque的两个实现类

  1. ArrayDeque : 基于数组实现,性能非常好。
  2. LinkedList : List和Deque方法都能用,性能略差。

遍历集合
用foreach循环遍历
Iterator 遍历器
Iterator主要有三个方法:
boolean hasNext()   判断是不是还有下一个
E next()    如果还有下一个,就用next()取出来
default void remove()   删除刚刚取出的元素 
Enumeration(太古老了,被Iterator代替)
使用Lambda表达式来遍历
  • c.forEach(Lambda表达式创建Consumer的实例)
    • 通过查API Collection接口继承了一个Iterable接口中的forEach方法
      4
    • 点进去发现这个方法要传入一个Consumer对象
      5
    • 点击Consumer发现它是一个函数式接口
      6
    • 它有一个抽象方法
      7
    • 于是就发现可以用Lambda表达式来实现遍历。
      8
    • 简化成Lambda表达式在下面实例中。

实例:
2
结果:
3