Update 47. 优先使用Collection而不是Stream来作为方法的返回类型.md

This commit is contained in:
Joe 2020-04-04 21:49:29 +08:00 committed by GitHub
parent 0dcd804ec1
commit 04bcf81c97
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -61,7 +61,7 @@ public static <E> Stream<E> streamOf(Iterable<E> iterable) {
  如果你需要返回一很大但可以简洁地表示的序列,请考虑实现一个专用集合。 例如假设返回给定集合的幂集power set就是原集合中所有的子集包括全集和空集构成的集族该集包含其所有子集。 {abc} 的幂集为 {{}{a}{b}{c}{ab}{ac}{bc}{ab, c}}。 如果一个集合具有 n 个元素,则幂集具有 2n 个。 因此,你甚至不应考虑将幂集存储在标准集合实现中。 但是,在 `AbstractList` 的帮助下,很容易为此实现自定义集合。
  诀窍是使用幂集中每个元素的索引作为位向量bit vector其中索引中的第 n 位指示源集合中是否存在第 n 个元素。 本质上,从 0 到 2n-1 的二进制数和 n 个元素集和的幂集之间存在自然映射。 这是代码:
  诀窍是使用幂集中每个元素的索引作为位向量bit vector其中索引中的第 n 位指示源集合中是否存在第 n 个元素。 本质上,从 0 到 2<sup>n</sup>-1 的二进制数和 n 个元素集和的幂集之间存在自然映射。 这是代码:
```java
// Returns the power set of an input set as custom collection