Java 8 | Fetch top N unique numbers from list

Below Java 8 example shows how to fetch top N unique numbers from ArrayList.

Traditional looping will require more logic to first remove duplicates, sort numbers and then store N numbers to different list.

Java 8 provides stream API to do all the above steps in single line of code. 

Descending order (N = 3)

List<Integer> integers = new ArrayList<>();
integers.add(1);
integers.add(2);
integers.add(1);
integers.add(5);
integers.add(5);
integers.add(6);
integers.add(4);
integers.add(0);
integers.stream().sorted((a, b) -> b-a).distinct().limit(3).forEach(System.out::println);
//Output
6
5
4

Ascending order (N = 3)
List<Integer> integers = new ArrayList<>();
integers.add(1);
integers.add(2);
integers.add(1);
integers.add(5);
integers.add(5);
integers.add(6);
integers.add(4);
integers.add(0);
integers.stream().sorted().distinct().limit(3).forEach(System.out::println);
//Output
1
2
4

Comments

Popular posts from this blog

Spring | Using TIBCO EMS with Spring framework

TIBCO | For Loop - Accumulate output

TIBCO | JNDI Server & JMS Instance creation