假设我们有一个集合(或流?)
{"1","2","3","4"...}
现在我们想取两个元素并组成一对这样的一对
{{"1","2"}, {"2","3"},{"3","4"}..}
我们知道如何以丑陋的方式(for loop)做到这一点。
我想知道我们如何用 java 8 流做到这一点?
因为java流和反应式扩展中的方法几乎相同(两者都是单子),我认为可能有类似于RX的东西。选择(2)
将在2个元素到达时触发事件…
可以使用<code>IntStream。range</code>以流的方式循环。
String[] str = {"1", "2", "3", "4"};
final String[][] result = IntStream.range(0, str.length - 1)
.mapToObj(i -> new String[]{str[i], str[i + 1]})
.toArray(String[][]::new);
结果包含 {{“1”, “2”}, {“2”, “3”}, {“3”, “4”}}
。
它也不漂亮,但你可以用收藏家来做。我使用了一个内部带有数组的 ArrayList,但如果需要,您可以使用不同的中间集合类型。
我在这里做的是一个收集器,它将每一项作为第二项添加到添加到累加器的最后一个数组中,并作为第一项添加到将要添加到累加器的新数组中。
Stream<Integer> stream = Stream.of(1, 2, 3, 4, 5, 6);
ArrayList<Integer[]> pairs =
stream.collect(
() -> new ArrayList<>(),
(acc, next) -> {
if(acc.isEmpty()) {
acc.add(new Integer[] {next, null});
} else {
acc.get(acc.size() - 1)[1] = next;
acc.add(new Integer[] {next, null});
}
},
ArrayList::addAll
);
pairs.forEach(a -> System.out.println(a[0] + ", " + a[1]));
//-> 1, 2
//-> 2, 3
//-> 3, 4
//-> 4, 5
//-> 5, 6
//-> 6, null
问题内容: 嘿,我在PostgreSql中有2个表: 和一些数据: 文件: 更新: 因此,所有更新都指向同一文档,但是所有更新的日期都不同。 我想做的是从文档表中进行选择,但还要包括基于日期的最新更新。 这样的查询应如何显示?这是我目前拥有的,但我列出的是所有更新,而不是我需要的最新更新: 包括; 我在查询中需要这个的原因是我想按更新模板中的日期排序! 编辑:此脚本已大大简化,因此我应该能够创建一
问题内容: 假设我有一个数组,我想随机选择一个元素。 最简单的方法是什么? 明显的方法是。但是也许有红宝石之类的东西?或者如果不能通过扩展创建这种方法? 问题答案: Swift 4.2及更高版本 推荐的新方法是Collection协议的内置方法:。它返回一个可选参数以避免我以前假设的空情况。 如果不创建数组并且不能保证count> 0,则应执行以下操作: Swift 4.1及以下 只是为了回答您的
假设我有一个数组,我想随机选择一个元素。 最简单的方法是什么? 最明显的方法是数组[随机索引]。但可能有类似ruby的数组。示例 ?或者,如果不是,那么可以使用扩展创建这样的方法吗?
问题内容: 如何从集合中选择随机元素?我对从Java中的HashSet或LinkedHashSet中选择随机元素特别感兴趣。也欢迎使用其他语言的解决方案。 问题答案:
问题内容: 请问我的英语水平。我有2个表,两个表都按日期间隔分区,但是在不同的字段上。两个表中都有大量记录(每个分区中约100kk)。第一个表在快速discks表空间中保留3个最后(按日期)分区,其他表在慢速discks表空间中保持。我也有一些系统来处理数据。它并行执行进程,每个进程都通过select语句从第一个表中获取数据,并将处理后的数据放入第二个表中。因此,我只需要从“快速”(!)分区的第一
每次运行代码时,我都需要从下面的示例json中选择任意随机值。我在空手道中怎样才能做到这一点呢?我需要得到任何随机值,并在另一个功能文件中使用。