From f74c2b53fa38818dbd12d568ecd79412d7ea1da6 Mon Sep 17 00:00:00 2001 From: Aliya Mansurova Date: Tue, 4 Jul 2017 13:35:29 +0300 Subject: [PATCH] done --- .../part1/exercise/Lambdas01Exercise.java | 23 +++++++++++++++---- .../part1/exercise/Lambdas02Exercise.java | 14 ++++++++--- .../part1/exercise/Lambdas03Exercise.java | 23 +++++++++++-------- 3 files changed, 43 insertions(+), 17 deletions(-) diff --git a/src/test/java/lambda/part1/exercise/Lambdas01Exercise.java b/src/test/java/lambda/part1/exercise/Lambdas01Exercise.java index b8656b7..6de1a61 100644 --- a/src/test/java/lambda/part1/exercise/Lambdas01Exercise.java +++ b/src/test/java/lambda/part1/exercise/Lambdas01Exercise.java @@ -1,5 +1,8 @@ package lambda.part1.exercise; +import com.google.common.base.Optional; +import com.google.common.base.Predicate; +import com.google.common.collect.FluentIterable; import com.google.common.collect.ImmutableList; import data.Person; import org.junit.Test; @@ -20,8 +23,11 @@ public void sortPersonsByAge() { new Person("name 1", "lastName 2", 40), new Person("name 2", "lastName 1", 30) }; - - // TODO use Arrays.sort + Arrays.sort(persons, new Comparator() { + public int compare(Person o1, Person o2) { + return o1.getAge()- o2.getAge(); + } + }); assertArrayEquals(persons, new Person[]{ new Person("name 3", "lastName 3", 20), @@ -39,8 +45,17 @@ public void findFirstWithAge30() { ); Person person = null; - - // TODO use FluentIterable + final Optional personOptional = + FluentIterable.from(persons) + .firstMatch(new Predicate() { + public boolean apply(Person p) { + return p.getAge()== 30; + } + }); + + if (personOptional.isPresent()) { + person = personOptional.get(); + } assertEquals(person, new Person("name 1", "lastName 2", 30)); } diff --git a/src/test/java/lambda/part1/exercise/Lambdas02Exercise.java b/src/test/java/lambda/part1/exercise/Lambdas02Exercise.java index da29209..5cfe1c5 100644 --- a/src/test/java/lambda/part1/exercise/Lambdas02Exercise.java +++ b/src/test/java/lambda/part1/exercise/Lambdas02Exercise.java @@ -1,9 +1,12 @@ package lambda.part1.exercise; +import com.google.common.base.Optional; +import com.google.common.collect.FluentIterable; import com.google.common.collect.ImmutableList; import data.Person; import org.junit.Test; +import java.util.Arrays; import java.util.List; import static org.junit.Assert.assertArrayEquals; @@ -17,8 +20,7 @@ public void sortPersonsByAge() { new Person("name 1", "lastName 2", 40), new Person("name 2", "lastName 1", 30) }; - - // TODO use Arrays.sort + Arrays.sort(persons, (o1, o2) -> (o1.getAge()-o2.getAge())); assertArrayEquals(persons, new Person[]{ new Person("name 3", "lastName 3", 20), @@ -37,7 +39,13 @@ public void findFirstWithAge30() { Person person = null; - // TODO use FluentIterable + final Optional personOptional = + FluentIterable.from(persons) + .firstMatch(p -> p.getAge() == 30); + + if (personOptional.isPresent()) { + person=personOptional.get(); + } assertEquals(person, new Person("name 1", "lastName 2", 30)); } diff --git a/src/test/java/lambda/part1/exercise/Lambdas03Exercise.java b/src/test/java/lambda/part1/exercise/Lambdas03Exercise.java index 59d3972..430b89e 100644 --- a/src/test/java/lambda/part1/exercise/Lambdas03Exercise.java +++ b/src/test/java/lambda/part1/exercise/Lambdas03Exercise.java @@ -18,22 +18,28 @@ default T twice(T t) { @Test public void generic0() { - final GenericProduct prod = null; // Use anonymous class + final GenericProduct prod = + new GenericProduct() { + @Override + public Integer prod(Integer a, int i) { + return a * i; + } + };// Use anonymous class assertEquals(prod.prod(3, 2), Integer.valueOf(6)); } @Test public void generic1() { - final GenericProduct prod = null; // Use statement lambda - + final GenericProduct prod = (Integer a, int i) -> { + return a * i; + }; assertEquals(prod.prod(3, 2), Integer.valueOf(6)); } @Test public void generic2() { - final GenericProduct prod = null; // Use expression lambda - + final GenericProduct prod = (a, i) -> a * i; assertEquals(prod.prod(3, 2), Integer.valueOf(6)); } @@ -47,8 +53,7 @@ private static String stringProd(String s, int i) { @Test public void strSum() { - final GenericProduct prod = null; // use stringProd; - + final GenericProduct prod = Lambdas03Exercise::stringProd; assertEquals(prod.prod("a", 2), "aa"); } @@ -64,10 +69,8 @@ private String stringSumWithDelimeter(String s, int i) { @Test public void strSum2() { - final GenericProduct prod = null; // use stringSumWithDelimeter; - + final GenericProduct prod = this::stringSumWithDelimeter; assertEquals(prod.prod("a", 3), "a-a-a"); } - }