Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.util.stream.IntStream;
- public class Main {
- public static void main(String[] args) {
- String s;
- //------------------------- simple = parallel (last two parameters are doing effectively the same)
- s = ints()
- .collect(StringBuilder::new, StringBuilder::append, StringBuilder::append).toString();
- System.out.println(s); //result: 12345
- s = ints()
- .parallel()
- .collect(StringBuilder::new, StringBuilder::append, StringBuilder::append).toString();
- System.out.println(s); //result: 12345
- //------------------------- same, but method ref-s replaced with lambdas (extracted to full)
- s = ints()
- .parallel() //doesn't matter here
- .collect(StringBuilder::new, (StringBuilder stringBuilder, int obj) -> stringBuilder.append(obj),
- (StringBuilder stringBuilder, StringBuilder s1) -> stringBuilder.append(s1)).toString();
- System.out.println(s); //result: 12345
- //------------------------- more interesting (changing last two parameters)
- s = ints()
- .parallel()
- .collect(StringBuilder::new, (StringBuilder stringBuilder, int obj) -> stringBuilder.append(obj + "l☻l"), //works only once
- (StringBuilder stringBuilder, StringBuilder s1) -> stringBuilder.append("-L☺L-")).toString(); //now matters (with parallelism)
- System.out.println(s); //result: 1l☻l-L☺L--L☺L-
- s = ints()
- .collect(StringBuilder::new, (StringBuilder stringBuilder, int obj) -> stringBuilder.append(obj),
- (StringBuilder stringBuilder, StringBuilder s1) -> stringBuilder.append("-L☺L-")).toString(); //plays no role AT ALL !!!!!!! (fuck, why it's here then)
- System.out.println(s); //result: 12345
- }
- private static IntStream ints() {
- return IntStream.range(1, 6);
- }
- }
Add Comment
Please, Sign In to add comment