在Java8中,您需要执行以下代码才能从集合
中获得并行流,这是否正确?
private <E> void process(final Collection<E> collection) {
Stream<E> stream = collection.parallelStream().parallel();
//processing
}
来自集合
API:
默认流parallelStream()
基本上,collection.parallelStream()
的默认实现会创建并行流。实现如下所示:
default Stream<E> parallelStream() {
return StreamSupport.stream(spliterator(), true);
}
但是这是一个默认的方法,对于一些实现类来说,提供一个不同的实现来创建顺序流是完全有效的。例如,假设我创建了SequentialArrayList
:
class MySequentialArrayList extends ArrayList<String> {
@Override
public Stream<String> parallelStream() {
return StreamSupport.stream(spliterator(), false);
}
}
对于该类的对象,以下代码将按预期打印false
:
ArrayList<String> arrayList = new MySequentialArrayList();
System.out.println(arrayList.parallelStream().isParallel());
public final S parallel() {
sourceStage.parallel = true;
return (S) this;
}
System.out.println(arrayList.parallelStream().parallel().isParallel());
在Java8中,您需要执行以下代码才能从中获得并行流,这是否正确? 来自API: 默认流parallelStream()
问题内容: 我想从Firebase Firestore数据库获取数据。我有一个名为user的集合,每个用户都有一些相同类型的对象(My Java自定义对象)的集合。我想在创建我的活动时用这些对象填充ArrayList。 在onCreate()中: 调用以获取项目列表的方法: 问题答案: 该操作返回a ,这意味着它是一个 异步操作 。调用仅启动操作,它不等待操作完成,因此您必须添加成功和失败侦听器。
问题内容: 如果我有一个收藏,例如,我如何拿出第一件?我可以先叫一个,先取一个,然后扔掉。有没有更浪费的方法呢? 问题答案: Iterables.get(yourC,indexYouWant) 因为实际上,如果您使用的是收藏夹,则应该使用Google收藏夹。
我有用于数据库的Spring Boot App和MongoDB。 在数据库中,我有一个集合packageholiday,其中有一些元素,这是JSON: 我的目标是什么: 正如你们所见,我在集合中有这样的数组: 所以我的问题实际上是创建API,它将从集合中返回具有指定的元素。 例如 的API 例如,对于相同的 的API 我怎样才能做到这一点?这样可能吗?
我想从一个集合中得到所有的文件,然后用它们,得到他们的身份证。这里我的集合如何是用户集合,它只是一个集合和多个文档。我试了一下,但不起作用: 更新
并行集合 并行集合 (Parallelized collections) 的创建是通过在一个已有的集合(Scala Seq)上调用 SparkContext 的 parallelize 方法实现的。集合中的元素被复制到一个可并行操作的分布式数据集中。例如,这里演示了如何在一个包含 1 到 5 的数组中创建并行集合: val data = Array(1, 2, 3, 4, 5) val distD