Friday, 3 January 2025

Java 8 Steam API | on Object based operations

 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);

}

}

output:
=====================
studentMarks::[60, 80, 90, 50, 70]

Printing the highest marks
90

Finding student with highest marks
Student [studenName=kavi, studentId=3, marks=90]

Ascending order based on names:
Student [studenName=kavi, studentId=3, marks=90]
Student [studenName=mani, studentId=4, marks=50]
Student [studenName=ravi, studentId=1, marks=60]
Student [studenName=suri, studentId=2, marks=80]
Student [studenName=suvi, studentId=5, marks=70]

Descending order based on names:
Student [studenName=suvi, studentId=5, marks=70]
Student [studenName=suri, studentId=2, marks=80]
Student [studenName=ravi, studentId=1, marks=60]
Student [studenName=mani, studentId=4, marks=50]
Student [studenName=kavi, studentId=3, marks=90]

No comments:

Post a Comment