package com.sk.demos;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
public class StreamApiTesting {
public static void main(String[] args) {
List<String> list = Arrays.asList("sk", "kr", "ar", "an", "ch", "ra");
System.out.println("Stream api tesing for this list...." + list);
List<String> filterList = list.stream().filter(p -> p.equals("an")).collect(Collectors.toList());
System.out.println("using filter with stream api");
System.out.println(filterList);
System.out.println("========================");
List<String> mapList = list.stream().map(i -> i.equals("sk") ? (String) "SureshK" : (String) i)
.collect(Collectors.toList());
System.out.println("using map with stream api");
System.out.println(mapList);
System.out.println("========================");
List<Student> listStd = Arrays.asList(new Student("ravi", 1, 60), new Student("suri", 2, 80),
new Student("kavi", 3, 90), new Student("mani", 4, 50), new Student("suvi", 5, 70));
Optional<Student> listStd1 = listStd.stream().max(Comparator.comparing(Student::getMarks));
System.out.println(listStd1.get());
// Sorting students by marks in ascending order
List<Student> sortedByMarksAsc = listStd.stream().sorted(Comparator.comparingInt(Student::getMarks))
.collect(Collectors.toList());
System.out.println("Students sorted by marks (ascending):" + sortedByMarksAsc);
List<Student> sortedByMarksDesc = listStd.stream()
.sorted((s1, s2) -> Integer.compare(s2.getMarks(), s1.getMarks())) // Reverse the order for descending
.collect(Collectors.toList());
System.out.println("Students sorted by marks (descending):" + sortedByMarksDesc);
}
}
Output:
===============
Stream api tesing for this list....[sk, kr, ar, an, ch, ra]
using filter with stream api
[an]
========================
using map with stream api
[SureshK, kr, ar, an, ch, ra]
========================
Student [studenName=kavi, studentId=3, marks=90]
Students sorted by marks (ascending):[Student [studenName=mani, studentId=4, marks=50], Student [studenName=ravi, studentId=1, marks=60], Student [studenName=suvi, studentId=5, marks=70], Student [studenName=suri, studentId=2, marks=80], Student [studenName=kavi, studentId=3, marks=90]]
Students sorted by marks (descending):[Student [studenName=kavi, studentId=3, marks=90], Student [studenName=suri, studentId=2, marks=80], Student [studenName=suvi, studentId=5, marks=70], Student [studenName=ravi, studentId=1, marks=60], Student [studenName=mani, studentId=4, marks=50]]