uniqueElements().iterator() filters nulls out
Georgiy Rakov
georgiy.rakov at oracle.com
Fri Nov 30 07:21:49 PST 2012
Hello,
if s is a sequential stream than s.uniqueElements().iterator() returns
iterator which filters nulls out.
Consider following code.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class UniqueElementsIssue2 {
public static void main(String arg[]) {
Iterator<Integer> it = Arrays.asStream(1, 2, 3, null, 4,
5).uniqueElements().iterator();
Integer i = null;
List<Object> result1 = new ArrayList<>();
while (it.hasNext()) {
i = it.next();
result1.add(i);
}
List<Object> result2 = new ArrayList<>();
Arrays.asStream(1, 2, 3, null, 4,
5).uniqueElements().into(result2);
System.out.println("resul1=" +
Arrays.toString(result1.toArray()));
System.out.println("resul2=" +
Arrays.toString(result2.toArray()));
}
}
It produces following output:
resul1=[1, 2, 3, 4, 5]
resul2=[1, 2, 3, null, 4, 5]
result1 seems to be faulty while result2 is ok (into() works fine).
As for me it's a bug but anyway could you please confirm that it is.
Code above is attached for your convenience.
Thanks,
Georgiy.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: UniqueElementsIssue2.java
Url: http://mail.openjdk.java.net/pipermail/lambda-dev/attachments/20121130/d1c80aff/UniqueElementsIssue2.java
More information about the lambda-dev
mailing list