When I run the code below, StringBuilder instance remains empty.
String[] params = {"v1", "v2"};
StringBuilder sb = new StringBuilder();
Stream.of(params).map(param -> sb.append(param));
However, when I run the same code with forEach instead of map, it behaves as expected (appends array elements to StringBuilder instance):
String[] params = {"v1", "v2"};
StringBuilder sb = new StringBuilder();
Stream.of(params).forEach(param -> sb.append(param));
Why doesn't it change StringBuilder in the first example?