戚权20201007

知识点:

1.集合

集合是一种比数组灵活、使用方便的接口和类,它们位于 java.util 包,称为集合框架。

1.1Iterable 接口

  • Iterable 接口,凡是实现了此接口的对象都能称为 for-each-loop 的目标。
  • iterator() 方法返回一个类型的迭代器。

1.2java.util.Collection

  • Collection 接口继承了 Iterable 接口。也就意味着,实现了Collection 接口的类也间接实现了 Iterable 接口,也就是说它们都能作为 for-each-loop 的循环对象。

    Collection 是集合层次结构中的根接口。集合表示一组对象,称为其元素。有些集合允许重复元素,有些则不允许。 有些是有序的,有些是无序的

  • 抽象方法

    • add(E e) boolean 添加元素
    • addAll(Collection<? extends E> c) boolean 将集合中的所有元素添加此集合中
    • clear() void 清除所有元素
    • contains(Object o) boolean 集合中是否包含此元素
    • containsAll(Collection<?> c) boolean 集合中是否包含 c 集合中的所有元素
    • isEmpty() boolean 集合中是否有元素,如果没有返回 true
    • iterator() Iterator 继承自 Iterable 接口,返回集合的迭代器
    • remove(Object o) boolean 删除集合中的某个元素
    • removeAll(Collection<?> c) boolean 删除集合 c 中包含的所有元素
    • size() int 返回此集合中的元素数
    • toArray() Object[] 返回一个包含此集合中所有元素的数组

1.3 Queue

  • 设计用于在处理之前保留元素的集合。 除了基本的 Collection 操作之外,队列还提供额外的插入,提取和检查操作。
  • 不可以存 null
  • 抽象方法
    • peek() E 检索不删除此队列的头,如果此队列为空,则返回 null ,如果不为空返回队列的头
    • poll() E 检索并删除此队列的头,如果此队列为空,则返回 null
    • remove() E 检索并删除此队列的头。 此方法与 poll 不同之处在于,如果此队列为空,它将抛出异常。

1.4Set

  • 不包含重复元素的集合。
  • 抽象方法大多是继承自 Collection 的,所以不做单独说明。
  • 常用子类, HashSet 和 TreeSet

1.5List

  • 有序集合(也称为序列 )。 该集合用户可以精确控制列表中每个元素的插入位置。 用户可以通过整数索引(列表中的位置)访问元素,并搜索列表中的元素
  • List 通常允许重复的元素、允许 null 元素

1.6 Vector

  • Vector 类实现了可扩展的对象数组。 像数组一样,它包含可以使用整数索引访问的组件。 但是,Vector的大小可以变化。
  • Vector 是同步的,是线程安全的。
  • Vector 继承了 AbstractList 类,实现了 List 接口
  • 默认大小是10,当容量不足时,默认扩容方式是按倍增长
  • 子类, Stack

image-20201008000443527

1.7Stack

  • Stack 类代表后进先出(LIFO)堆栈的对象, Stack 继承自 Vector 所以它有所有 Vector 中的方法。

2.List集合

  • List 是一个有序集合。可以存储一组不唯一、有序的对象、可以存 null 。
  • List 在 JDK 9 中新增 of() 方法,作用是返回一个 List 对象。 of(E…e) 可以接受传参,但是不能传 null 。否则会抛出 NullPointerException 。

3.ArrayList

  • ArrayList 是 AbstractList 类的子类,同时实现了 List 接口。
  • ArrayList 不是同步的,也就是说是非线程安全的。
  • ArrayList 内部是使用数组存储数据,也就是说在内存中开辟一个连续的空间。是一个可变的数组,可以向 ArrayList 中添加不同类型数据,这些数据都将转换 Object 类型存储。
    • 初始化容量是 10
    • 存储数据的对象是 Object[] elementData
    • 当容量不足时,扩容1.5倍
  • ArrayList 中的方法中大部分方法都是实现自 List 接口。

注意: contains 方法在判断对象时,对象的类中要重写 equals 方法。Arrays.asList() 方法返回一个只读集合

总结:

今天晚上把老师安排的ArrayList作业完成了,虽然挺多的,但是做完之后收获很多.

标签

评论

this is is footer