Stream<String> a = Stream.of("one", "three", "five");
Stream<String> b = Stream.of("two", "four", "six");
对于下面的输出,我需要做什么?
// one
// two
// three
// four
// five
// six
我调查了一下,concat
但是正如javadoc所解释的,它只是一个接一个地追加,它不会交错/散布。
Stream<String> out = Stream.concat(a, b);
out.forEach(System.out::println);
创建一个延迟串联的流,其元素是第一个流的所有元素,后跟第二个流的所有元素。
错误地给
// one
// three
// five
// two
// four
// six
如果我收集它们并进行迭代,但是希望获得更多Java8-y,Streamy :-),可以这样做
注意
我不想压缩流
“ zip”操作将从每个html" target="_blank">集合中获取一个元素并将其组合。
压缩操作的结果将是这样的:(不需要)
// onetwo
// threefour
// fivesix
我会用这样的东西:
public static <T> Stream<T> interleave(Stream<? extends T> a, Stream<? extends T> b) {
Spliterator<? extends T> spA = a.spliterator(), spB = b.spliterator();
long s = spA.estimateSize() + spB.estimateSize();
if(s < 0) s = Long.MAX_VALUE;
int ch = spA.characteristics() & spB.characteristics()
& (Spliterator.NONNULL|Spliterator.SIZED);
ch |= Spliterator.ORDERED;
return StreamSupport.stream(new Spliterators.AbstractSpliterator<T>(s, ch) {
Spliterator<? extends T> sp1 = spA, sp2 = spB;
@Override
public boolean tryAdvance(Consumer<? super T> action) {
Spliterator<? extends T> sp = sp1;
if(sp.tryAdvance(action)) {
sp1 = sp2;
sp2 = sp;
return true;
}
return sp2.tryAdvance(action);
}
}, false);
}
它尽可能保留输入流的特征,从而允许进行某些优化(例如count()
和toArray()
)。此外,ORDERED
当输入流可能无序时,它还会添加偶数,以反映交织。
当一个流中的元素多于另一个时,其余元素将出现在末尾。
我需要做什么才能使输出如下所示? 我查看了concat,但正如javadoc所解释的,它只是一个接一个地附加,而不是交错/穿插。 创建一个延迟连接的流,其元素是第一个流的所有元素,然后是第二个流的所有元素。 错误地给予 如果我收集它们并迭代,可以做到这一点,但希望有更多的Java8-y,Streamy:-) 笔记 我不想让溪流断流 “zip”操作将从每个集合中获取一个元素并将其组合。 zip操作的
我有两个(或更多)
问题内容: 我有第一个json: 第二个: 我想合并/合并两个数据数组,例如: (我现在不在乎)。 如何快速简便地做到这一点?这是我的尝试: 但是会引发异常: 问题答案: JArray dataOfJson1=json1.SelectToken(“data”);
问题内容: 如果我有两个数组,例如 我想以以下模式[one [0],two [0],one [1],two [1]等合并/交织数组。 什么是实现合并功能的好方法? 问题答案: 如果两个数组的 长度相同, 那么这可能是一种解决方案: 此处枚举并行的数组,并返回一对对(2元素元组)的序列,每个数组中都有一个元素。从每对创建一个2元素数组,并将结果连接起来。 如果数组的 长度 可以 不同, 则可以将较长
问题内容: 如何合并结构相同的两个MySQL表? 这两个表的主键将发生冲突,因此我考虑了这一点。 问题答案: 您也可以尝试: 这允许table_1中的行取代table_2中具有匹配主键的行,同时仍插入具有新主键的行。 或者, 将使用来自表_2的相应行更新表_1中已经存在的行,同时插入具有新主键的行。
我有一个Java类,它有20个属性及其相应的getter和setter。还有两个对象列表:和。 使用Java 8: 但是我必须在哪个地方指定属性呢?是否应该重写和方法?