Java 8 - complex programs asked in interviews

package com.dpq.movie.ratings.datalayer.dao.impl;

import java.util.Arrays;

import java.util.List;

import java.util.stream.Collectors;

public class RatingDaoImpl {

publicstaticvoidmain(String[] args) {

List<String> names = Arrays.asList(“Deepak”,“Deepak”,“Kuhu”,“Kuhu”,“Garv”);

System.out.println(names.stream().collect(Collectors.toMap(k->k, v->1, Integer::sum)));

List<Student> student = Arrays.asList(new RatingDaoImpl().new Student(“Math”,98), 

new RatingDaoImpl().new Student(“Science”,98), new RatingDaoImpl().new Student(“English”,98),new RatingDaoImpl().new Student(“Hindi”,98));

System.out.println(student.stream().map(e->e.getMarks()).collect(Collectors.summingInt(e->e.intValue())));

List<StudentDetails> studentDetails = Arrays.asList(new RatingDaoImpl().new StudentDetails(“Deepak”,“Math”,98), 

new RatingDaoImpl().new StudentDetails(“Deepak”,“Science”,98), 

new RatingDaoImpl().new StudentDetails(“Deepak”,“English”,98),

new RatingDaoImpl().new StudentDetails(“Deepak”,“Hindi”,98),

new RatingDaoImpl().new StudentDetails(“Bobby”,“Math”,100), 

new RatingDaoImpl().new StudentDetails(“Bobby”,“Science”,100), 

new RatingDaoImpl().new StudentDetails(“Bobby”,“English”,100),

new RatingDaoImpl().new StudentDetails(“Bobby”,“Hindi”,98));

System.out.println(studentDetails.stream().collect(Collectors.toMap(k->k.getName(), k->k.getMarks(),Integer::sum)));

}

class StudentDetails{

privateString name;

privateString subject;

privateInteger marks;

public StudentDetails(String name,String subject, Integer marks) {

super();

this.name=name;

this.subject = subject;

this.marks = marks;

}

public String getSubject() {

return subject;

}

public Integer getMarks() {

returnmarks;

}

public String getName() {

returnname;

}

}

class Student{

privateString subject;

privateInteger marks;

public Student(String subject, Integer marks) {

super();

this.subject = subject;

this.marks = marks;

}

public String getSubject() {

return subject;

}

public Integer getMarks() {

returnmarks;

}

@Override

public String toString() {

return “Student [subject=” + subject + “, marks=” + marks + “]”;

}}}

Output:

{Kuhu=2, Deepak=2, Garv=1}

392

{Bobby=398, Deepak=392}

Popular posts from this blog

Window function in PySpark with Joins example using 2 Dataframes (inner join)

Complex SQL: fetch the users who logged in consecutively 3 or more times (lead perfect example)

Credit Card Data Analysis using PySpark (how to use auto broadcast join after disabling it)