Я могу добавить потоки или дополнительные элементы, например:
Stream stream = Stream.concat(stream1, Stream.concat(stream2, Stream.of(element));
И я могу добавить новые вещи, как я иду, например:
Stream stream = Stream.concat(
Stream.concat(
stream1.filter(x -> x!=0), stream2)
.filter(x -> x!=1),
Stream.of(element))
.filter(x -> x!=2);
Но это уродливо, потому что concat
является статическим. Если concat
был методом экземпляра, приведенные выше примеры были бы намного легче читать:
Stream stream = stream1.concat(stream2).concat(element);
и
Stream stream = stream1
.filter(x -> x!=0)
.concat(stream2)
.filter(x -> x!=1)
.concat(element)
.filter(x -> x!=2);
Мой вопрос:
1) Есть ли веская причина, почему concat
является статическим? Или есть какой-то эквивалентный метод экземпляра, который мне не хватает?
2) В любом случае, есть ли лучший способ сделать это?