dorinesinenco / database-students-oop

0 stars 0 forks source link

Применение "Stream". Практика - 1 #5

Open dorinesinenco opened 5 years ago

dorinesinenco commented 5 years ago

Предположим у нас есть такая структура


import java.util.ArrayList;
import java.util.function.Consumer;

public class AnonimousClassApp {

public static void main(String[] args) {

    // Consumer lambda
    Consumer<Student> showPretty = s -> System.out.println( "------------------------------\n" + s + "------------------------------\n" );

    // Predicate lambda
    // ???

    ArrayList<Student> students = new ArrayList<Student>();
    // ???

    students
        .stream()
        // ???
        .forEach( showPretty );

}

}

class Student {

private String name;
private Float mark;

public Student(String name, Float mark) {
    super();
    this.name = name;
    this.mark = mark;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public Float getMark() {
    return mark;
}

public void setMark(Float mark) {
    this.mark = mark;
}

@Override
public String toString() {
    return "Student [name=" + name + ", mark=" + mark + "]";
}

}


1. Дополнить все "???" так чтобы у вас поток передал консюмеру только тех студентов что учаться на 8.0 и более
2. Вставить в поток метод ".sorted(Comparator)" внутри которого передается некая имплементация "Comparator" для того чтобы отсортировать студентов в убывающем порядке по оценке 
grubneac commented 5 years ago

По второму пункту: внутрь sorted вставить анонимный класс или создать объект Comparator descSort? Реализовал и как анонимный класс и через lambda. https://github.com/grubneac/CursVanarMd/blob/master/StreamAPI/src/AnonimousClassApp.java