Can someone please explain the output of below java streams code:
List<Integer> l = new ArrayList<>();
l.add(0);
l.add(1);
l.add(2);
l.add(3);
l.add(4);
l.add(4);
l.stream()
.distinct()
.map(v -> {
System.out.println("In Map " + v);
return v;
}).forEach(v -> {
System.out.println("In ForEach " + v);
});
I expected:
In Map 0
In Map 1
In Map 2
In Map 3
In Map 4
In ForEach 0
In ForEach 1
In ForEach 2
In ForEach 3
In ForEach 4
But it prints:
In Map 0
In ForEach 0
In Map 1
In ForEach 1
In Map 2
In ForEach 2
In Map 3
In ForEach 3
In Map 4
In ForEach 4