Skip to content

Instantly share code, notes, and snippets.

@naoto-ogawa
Created December 2, 2018 07:18
Show Gist options
  • Save naoto-ogawa/1f5347812aae1aaa4d658832252f44a8 to your computer and use it in GitHub Desktop.
Save naoto-ogawa/1f5347812aae1aaa4d658832252f44a8 to your computer and use it in GitHub Desktop.
Java reduce sample
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import java.util.stream.Stream;
public class Main3 {
public static void main(String[] args) {
log(test01("abc"));
log(test02("abc"));
log(test03("snakeToCamel"));
log(test04("snake_to_camel"));
// test00();
int r = Stream.of(1,2,3).reduce(10, (x,y) -> x + y);
System.out.println(r); // 16
}
private static void log(Object obj) {
System.out.println(obj);
}
private static String test04(String str) {
return Arrays.stream(str.split("_"))
.map(x -> x.substring(0,1).toUpperCase() + x.substring(1).toLowerCase())
.collect(Collectors.joining());
}
private static String test03(String in) {
String out = in.codePoints()
.mapToObj(c -> (char)c) // IntStream to Stream<Character>
.reduce("" ,
(acc, v) -> acc + (Character.isLowerCase(v) ? v : "_" + Character.toLowerCase(v)) ,
(s1, s2) -> s1 + s2
);
return out;
}
private static List<Character> test02(String in) {
List<Character> out = in.codePoints()
.mapToObj(c -> Character.valueOf((char)c))
.reduce(new ArrayList() ,
(acc, v) -> {acc.add(v);return acc;},
(s1, s2) -> {s1.addAll(s2);return s1;}
);
return out;
}
private static String test01(String in) {
String out = in.codePoints()
.mapToObj(x -> String.valueOf(x))
.reduce("x" ,
(String acc, String v) -> acc + "_" + v,
(String s1, String s2) -> s1 + s2
);
return out;
}
private static String test00() {
List<String> tokens = new ArrayList<String>();
for (int i = 0; i < 1000; i++) {
tokens.add("_" + i + "\n");
}
String ret = tokens.parallelStream().reduce("", String::concat, String::concat);
return ret;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment