Java-Collection
interface Collection
集合层次结构中的根接口。集合代表一组对象,称为其元素。一些集合允许重复的元素,而另一些则不允许。有些是有序的,而另一些则是无序的。JDK不提供 此接口的任何直接实现:它提供了更多特定子接口的实现,例如{@code Set}和{@code List}。该接口通常用于传递集合并在需要最大通用性的地方操纵它们。
Bags或multisets(可能包含重复元素的无序集合)应直接实现此接口。
所有通用的{@code Collection}实现类(通常通过其子接口之一间接实现{@code Collection})应提供两个“标准”构造函数:void(无自变量)构造函数,该构造函数创建一个空的集合,以及一个带有单个实参类型为{@code Collection}的构造函数,该构造函数创建一个新集合,其元素与实参相同。实际上,后一个构造函数允许用户复制任何集合,从而产生所需实现类型的等效集合。没有强制执行此约定的方法(因为接口不能包含构造函数),但是Java平台库中的所有通用{@code Collection} 实现都可以遵循。
1 | Set |
方法解析
1.size()返回集合大小
1 | /** |
2.isEmpty()
1 | /** |
3.contains(Object o)
1 | /** |
4.iterator()返回一个迭代器
1 | /** |
5.toArray()转换成数组
1 | Object[] toArray(); |
6.add()添加元素
1 | boolean add(E e); |
7.去除元素
1 | boolean remove(Object o); |
8.containAll()返回是否包含该集合的所有元素
1 | /** |
9.addALL()
1 | boolean addAll(Collection<? extends E> c); |
10.removeAll
1 | boolean removeAll(Collection<?> c); |
11.removesif()去除所有符合条件的元素
1 |
|
12.retainAll()去除所有不在c中的元素
1 | boolean retainAll(Collection<?> c); |
13.clear()清楚所有
1 | void clear(); |
14.equals和hashcode
15.可分割迭代器
1 |
|
16.Stream 获得流
1 | //这个是串行流 |
Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。
Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。
Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。
这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。
元素流在管道中经过中间操作(intermediate operation)的处理,最后由最终操作(terminal operation)得到前面处理的结果。
1 | +--------------------+ +------+ +------+ +---+ +-------+ |
以上的流程转换为 Java 代码为:
1 | List<Integer> transactionsIds = |
参考https://www.runoob.com/java/java8-streams.html
17.获得并行流
1 | //并行流 |