package com.sk.demos;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
public class OperationsOnStundentObject {
public static void main(String[] args) {
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));
// get list of marks from student object
List<Integer> studentMarks = listStd.stream()
.map(marks -> marks.getMarks())
.collect(Collectors.toList());
System.out.println("studentMarks::" + studentMarks);
// Finding highest marks using Stream API
System.out.println("\nPrinting the highest marks");
Optional<Integer> highestMarks = listStd.stream()
.map(Student::getMarks) // Mapping to only marks
.max(Integer::compare); // Finding max marks
// Printing the highest marks if present
highestMarks.ifPresent(System.out::println);
// Finding student with highest marks using Stream API
System.out.println("\nFinding student with highest marks");
Optional<Student> highestMarksStudent = listStd.stream()
.max((student1, student2) -> Integer.compare(student1.getMarks(), student2.getMarks()));
highestMarksStudent.ifPresent(System.out::println);
// Sorting by names in ascending order
System.out.println("\nAscending order based on names:");
listStd.stream().
sorted((student1,student2)-> student1.getStudenName().compareTo(student2.getStudenName()))
.forEach(System.out::println);
// Sorting by names in descending order
System.out.println("\nDescending order based on names:");
listStd.stream()
.sorted((student1, student2) -> student2.getStudenName().compareTo(student1.getStudenName()))
.forEach(System.out::println);
}
}
No comments:
Post a Comment