Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java lambda sublist

What is the shortest way to express "get new List B from List A where condition" via a Java 8 lambda?

Say I have List<Integer> a = Arrays.asList(1, 2, 3, 4, 5) and I want a new List, B, where the value is > 3.

I've read through the new Collections Streams API, but I'm not convinced I have found the best way to do this, and don't want to taint the question with what is probably my less than perfect solution.

like image 335
Kong Avatar asked Oct 24 '13 22:10

Kong


1 Answers

a.stream().filter(x -> x > 3).collect(Collectors.toList());

Java 16 solution

It can be written in a further shorter form in JDK 16 which includes a toList() method directly on Stream instances.

a.stream().filter(x -> x > 3).toList();
like image 183
Louis Wasserman Avatar answered Nov 18 '22 18:11

Louis Wasserman