From 2cabc8d44b8c08b7eee4ddd667665713c6f7f6f3 Mon Sep 17 00:00:00 2001 From: Elena Fedorovskaia Date: Wed, 5 Jul 2017 20:02:36 +0300 Subject: [PATCH 1/2] part 1 is done --- .../part1/exercise/Lambdas01Exercise.java | 17 +++++++++++++++++ .../part1/exercise/Lambdas02Exercise.java | 7 ++++++- .../part1/exercise/Lambdas03Exercise.java | 19 +++++++++++++------ 3 files changed, 36 insertions(+), 7 deletions(-) diff --git a/src/test/java/lambda/part1/exercise/Lambdas01Exercise.java b/src/test/java/lambda/part1/exercise/Lambdas01Exercise.java index b8656b7..e115978 100644 --- a/src/test/java/lambda/part1/exercise/Lambdas01Exercise.java +++ b/src/test/java/lambda/part1/exercise/Lambdas01Exercise.java @@ -1,5 +1,7 @@ package lambda.part1.exercise; +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; @@ -22,6 +24,13 @@ public void sortPersonsByAge() { }; // TODO use Arrays.sort + Arrays.sort(persons, new Comparator() { + @Override + public int compare(Person o1, Person o2) { + return o1.getAge() > o2.getAge() + ? 1 : o1.getAge() < o2.getAge() ? -1 : 0; + } + }); assertArrayEquals(persons, new Person[]{ new Person("name 3", "lastName 3", 20), @@ -41,7 +50,15 @@ public void findFirstWithAge30() { Person person = null; // TODO use FluentIterable + person = FluentIterable.from(persons) + .firstMatch(new Predicate() { + @Override + public boolean apply(Person p) { + return p.getAge() == 30; + } + }).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..b3b493a 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.collect.FluentIterable; import com.google.common.collect.ImmutableList; import data.Person; import org.junit.Test; +import java.util.Arrays; +import java.util.Comparator; import java.util.List; import static org.junit.Assert.assertArrayEquals; @@ -19,6 +22,7 @@ public void sortPersonsByAge() { }; // TODO use Arrays.sort + Arrays.sort(persons, Comparator.comparing(p -> p.getAge())); assertArrayEquals(persons, new Person[]{ new Person("name 3", "lastName 3", 20), @@ -38,7 +42,8 @@ public void findFirstWithAge30() { Person person = null; // TODO use FluentIterable + person = FluentIterable.from(persons).firstMatch(p -> p.getAge() == 30).get(); assertEquals(person, new Person("name 1", "lastName 2", 30)); } -} +} \ No newline at end of file diff --git a/src/test/java/lambda/part1/exercise/Lambdas03Exercise.java b/src/test/java/lambda/part1/exercise/Lambdas03Exercise.java index 59d3972..69b5fe6 100644 --- a/src/test/java/lambda/part1/exercise/Lambdas03Exercise.java +++ b/src/test/java/lambda/part1/exercise/Lambdas03Exercise.java @@ -18,21 +18,29 @@ 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 3 * 2; + } + }; assertEquals(prod.prod(3, 2), Integer.valueOf(6)); } @Test public void generic1() { - final GenericProduct prod = null; // Use statement lambda + final GenericProduct prod = + (Integer i1, int i2) -> { + return i1 * i2; + }; assertEquals(prod.prod(3, 2), Integer.valueOf(6)); } @Test public void generic2() { - final GenericProduct prod = null; // Use expression lambda + final GenericProduct prod = (i1, i2) -> i1 * i2; // Use expression lambda assertEquals(prod.prod(3, 2), Integer.valueOf(6)); } @@ -47,7 +55,7 @@ private static String stringProd(String s, int i) { @Test public void strSum() { - final GenericProduct prod = null; // use stringProd; + final GenericProduct prod = Lambdas03Exercise::stringProd; // use stringProd; assertEquals(prod.prod("a", 2), "aa"); } @@ -64,10 +72,9 @@ private String stringSumWithDelimeter(String s, int i) { @Test public void strSum2() { - final GenericProduct prod = null; // use stringSumWithDelimeter; + final GenericProduct prod = this::stringSumWithDelimeter; // use stringSumWithDelimeter; assertEquals(prod.prod("a", 3), "a-a-a"); } - } From 27d4f7348fb8683404ebedebde1530cffc349bf3 Mon Sep 17 00:00:00 2001 From: Elena_Fedorovskaia Date: Fri, 7 Jul 2017 12:26:52 +0300 Subject: [PATCH 2/2] fixed comments --- .../java/lambda/part1/exercise/Lambdas01Exercise.java | 4 +--- .../java/lambda/part1/exercise/Lambdas02Exercise.java | 8 ++------ 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/test/java/lambda/part1/exercise/Lambdas01Exercise.java b/src/test/java/lambda/part1/exercise/Lambdas01Exercise.java index e115978..dcb3f30 100644 --- a/src/test/java/lambda/part1/exercise/Lambdas01Exercise.java +++ b/src/test/java/lambda/part1/exercise/Lambdas01Exercise.java @@ -23,12 +23,10 @@ public void sortPersonsByAge() { new Person("name 2", "lastName 1", 30) }; - // TODO use Arrays.sort Arrays.sort(persons, new Comparator() { @Override public int compare(Person o1, Person o2) { - return o1.getAge() > o2.getAge() - ? 1 : o1.getAge() < o2.getAge() ? -1 : 0; + return Integer.compare(o1.getAge(),o2.getAge()); } }); diff --git a/src/test/java/lambda/part1/exercise/Lambdas02Exercise.java b/src/test/java/lambda/part1/exercise/Lambdas02Exercise.java index b3b493a..9601049 100644 --- a/src/test/java/lambda/part1/exercise/Lambdas02Exercise.java +++ b/src/test/java/lambda/part1/exercise/Lambdas02Exercise.java @@ -21,8 +21,7 @@ public void sortPersonsByAge() { new Person("name 2", "lastName 1", 30) }; - // TODO use Arrays.sort - Arrays.sort(persons, Comparator.comparing(p -> p.getAge())); + Arrays.sort(persons, Comparator.comparingInt(p -> p.getAge())); assertArrayEquals(persons, new Person[]{ new Person("name 3", "lastName 3", 20), @@ -39,10 +38,7 @@ public void findFirstWithAge30() { new Person("name 2", "lastName 1", 30) ); - Person person = null; - - // TODO use FluentIterable - person = FluentIterable.from(persons).firstMatch(p -> p.getAge() == 30).get(); + Person person = FluentIterable.from(persons).firstMatch(p -> p.getAge() == 30).get(); assertEquals(person, new Person("name 1", "lastName 2", 30)); }