From f7389bb5ce6504d2c2742d2a28d87cc09e38b03e Mon Sep 17 00:00:00 2001 From: tim Date: Sat, 10 Dec 2022 19:10:54 +0100 Subject: [PATCH] Add SingleStream::mapToTriplet --- src/main/java/me/pr3/Main.java | 15 ++++++++++----- .../me/pr3/streams/api/streams/ISingleStream.java | 2 ++ .../java/me/pr3/streams/impl/SingleStream.java | 14 ++++++++++++++ 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/main/java/me/pr3/Main.java b/src/main/java/me/pr3/Main.java index dce0d25..49417ba 100644 --- a/src/main/java/me/pr3/Main.java +++ b/src/main/java/me/pr3/Main.java @@ -1,15 +1,20 @@ package me.pr3; -import me.pr3.streams.api.streams.ISingleStream; +import me.pr3.streams.impl.TripletStream; -import java.util.Arrays; +import java.util.List; public class Main { public static void main(String[] args) { + System.out.println(new TripletStream<>(List.of(1, 2, 3), List.of("a", "b", "c"), List.of("", "", "")).toList()); + System.out.println(new TripletStream<>(List.of(1, 2, 3), List.of("a", "b", "c"), List.of("", "", "")).mapSeparate( + a -> a, + b -> b.toUpperCase(), + c -> "test") + .peek((a,b,c) -> System.out.println(a)).toList() + ); + - System.out.println(Arrays.toString(ISingleStream.of("aaaaaaa", "bbbb", "ccccc") - .map(String::toUpperCase) - .toArray())); } } \ No newline at end of file diff --git a/src/main/java/me/pr3/streams/api/streams/ISingleStream.java b/src/main/java/me/pr3/streams/api/streams/ISingleStream.java index 3c9920d..f0e9207 100644 --- a/src/main/java/me/pr3/streams/api/streams/ISingleStream.java +++ b/src/main/java/me/pr3/streams/api/streams/ISingleStream.java @@ -11,6 +11,8 @@ public interface ISingleStream{ IPairStream mapToPair(Function aFunction, Function bFunction); + ITripletStream mapToTriplet(Function aFunction, Function bFunction, Function cFunction); + IntStream mapToInt(ToIntFunction mapper); LongStream mapToLong(ToLongFunction mapper); diff --git a/src/main/java/me/pr3/streams/impl/SingleStream.java b/src/main/java/me/pr3/streams/impl/SingleStream.java index 5a3de34..ab1e200 100644 --- a/src/main/java/me/pr3/streams/impl/SingleStream.java +++ b/src/main/java/me/pr3/streams/impl/SingleStream.java @@ -2,6 +2,7 @@ import me.pr3.streams.api.streams.IPairStream; import me.pr3.streams.api.streams.ISingleStream; +import me.pr3.streams.api.streams.ITripletStream; import org.apache.commons.collections4.ListUtils; import java.util.*; @@ -31,6 +32,19 @@ public IPairStream mapToPair(Function aFunction, Func return new PairStream<>(aList, bList); } + @Override + public ITripletStream mapToTriplet(Function aFunction, Function bFunction, Function cFunction) { + List aList = new ArrayList<>(); + List bList = new ArrayList<>(); + List cList = new ArrayList<>(); + stream.forEach(t ->{ + aList.add(aFunction.apply(t)); + bList.add(bFunction.apply(t)); + cList.add(cFunction.apply(t)); + }); + return new TripletStream<>(aList, bList, cList); + } + @Override public IntStream mapToInt(ToIntFunction mapper) { return stream.mapToInt(mapper);