From 61504c948b7af45df69850d304d7509a3efbd1ce Mon Sep 17 00:00:00 2001 From: Ciro Alvino Date: Wed, 11 Apr 2018 19:52:21 +0200 Subject: [PATCH] Bael 1585 (#3750) * Different Types of Bean Injection in Spring * BAEL-1585 * Revert "Different Types of Bean Injection in Spring" This reverts commit ae47827879d0e9396ad5de5f979f495629a35838. * Revert "BAEL-1585" This reverts commit e792f17f82f863850d07884f4638c53beca7f52f. * BAEL-1585 * rev1 --- .../com/baeldung/java_8_features/Car.java | 31 +++++++++++++++++++ .../baeldung/java8/Java8MaxMinUnitTest.java | 27 ++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 core-java-8/src/main/java/com/baeldung/java_8_features/Car.java diff --git a/core-java-8/src/main/java/com/baeldung/java_8_features/Car.java b/core-java-8/src/main/java/com/baeldung/java_8_features/Car.java new file mode 100644 index 0000000000..139475bc25 --- /dev/null +++ b/core-java-8/src/main/java/com/baeldung/java_8_features/Car.java @@ -0,0 +1,31 @@ +package com.baeldung.java_8_features; + +public class Car { + + private String model; + private int topSpeed; + + public Car(String model, int topSpeed) { + super(); + this.model = model; + this.topSpeed = topSpeed; + } + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model; + } + + public int getTopSpeed() { + return topSpeed; + } + + public void setTopSpeed(int topSpeed) { + this.topSpeed = topSpeed; + } + + +} diff --git a/core-java-8/src/test/java/com/baeldung/java8/Java8MaxMinUnitTest.java b/core-java-8/src/test/java/com/baeldung/java8/Java8MaxMinUnitTest.java index 4979338452..c2cc39c685 100644 --- a/core-java-8/src/test/java/com/baeldung/java8/Java8MaxMinUnitTest.java +++ b/core-java-8/src/test/java/com/baeldung/java8/Java8MaxMinUnitTest.java @@ -1,6 +1,8 @@ package com.baeldung.java8; +import com.baeldung.java_8_features.Car; import com.baeldung.java_8_features.Person; + import org.junit.Test; import java.util.Arrays; @@ -44,4 +46,29 @@ public class Java8MaxMinUnitTest { assertEquals("Should be Alex", alex, minByAge); } + @Test + public void whenArrayIsOfIntegerThenMinUsesIntegerComparator() { + int[] integers = new int[] { 20, 98, 12, 7, 35 }; + + int min = Arrays.stream(integers) + .min() + .getAsInt(); + + assertEquals(7, min); + } + + @Test + public void whenArrayIsOfCustomTypeThenMaxUsesCustomComparator() { + final Car porsche = new Car("Porsche 959", 319); + final Car ferrari = new Car("Ferrari 288 GTO", 303); + final Car bugatti = new Car("Bugatti Veyron 16.4 Super Sport", 415); + final Car mcLaren = new Car("McLaren F1", 355); + final Car[] fastCars = { porsche, ferrari, bugatti, mcLaren }; + + final Car maxBySpeed = Arrays.stream(fastCars) + .max(Comparator.comparing(Car::getTopSpeed)) + .orElseThrow(NoSuchElementException::new); + + assertEquals(bugatti, maxBySpeed); + } }