diff --git a/pom.xml b/pom.xml
index 10e5035e..21cf3d92 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
manning
lambdasinaction
1.0
-
+
UTF-8
@@ -37,8 +37,8 @@
maven-compiler-plugin
3.1
- 1.9
- 1.9
+ 1.8
+ 1.8
@@ -53,7 +53,8 @@
benchmarks
-
+
org.openjdk.jmh.Main
diff --git a/src/main/java/lambdasinaction/chap10/OperationsWithOptional.java b/src/main/java/lambdasinaction/chap10/OperationsWithOptional.java
index d2940969..f2c4d28e 100644
--- a/src/main/java/lambdasinaction/chap10/OperationsWithOptional.java
+++ b/src/main/java/lambdasinaction/chap10/OperationsWithOptional.java
@@ -1,9 +1,9 @@
package lambdasinaction.chap10;
-import java.util.*;
+import java.util.Optional;
-import static java.util.Optional.of;
import static java.util.Optional.empty;
+import static java.util.Optional.of;
public class OperationsWithOptional {
@@ -11,15 +11,15 @@ public static void main(String... args) {
System.out.println(max(of(3), of(5)));
System.out.println(max(empty(), of(5)));
- Optional opt1 = of(5);
- Optional opt2 = opt1.or(() -> of(4));
-
- System.out.println(
- of(5).or(() -> of(4))
- );
+// Optional opt1 = of(5);
+// Optional opt2 = opt1.or(() -> of(4));
+//
+// System.out.println(
+// of(5).or(() -> of(4))
+// );
}
public static final Optional max(Optional i, Optional j) {
- return i.flatMap(a -> j.map(b -> Math.max(a, b)));
+ return i.flatMap(a -> j.map(b -> Math.max(a, b)));
}
}
diff --git a/src/main/java/lambdasinaction/chap10/OptionalMain.java b/src/main/java/lambdasinaction/chap10/OptionalMain.java
index dcd97792..30c31dac 100644
--- a/src/main/java/lambdasinaction/chap10/OptionalMain.java
+++ b/src/main/java/lambdasinaction/chap10/OptionalMain.java
@@ -1,24 +1,25 @@
package lambdasinaction.chap10;
-import java.util.*;
-
-import static java.util.stream.Collectors.toSet;
+import java.util.List;
+import java.util.Optional;
+import java.util.Set;
public class OptionalMain {
public String getCarInsuranceName(Optional person) {
return person.flatMap(Person::getCar)
- .flatMap(Car::getInsurance)
- .map(Insurance::getName)
- .orElse("Unknown");
+ .flatMap(Car::getInsurance)
+ .map(Insurance::getName)
+ .orElse("Unknown");
}
public Set getCarInsuranceNames(List persons) {
- return persons.stream()
- .map(Person::getCar)
- .map(optCar -> optCar.flatMap(Car::getInsurance))
- .map(optInsurance -> optInsurance.map(Insurance::getName))
- .flatMap(Optional::stream)
- .collect(toSet());
+// return persons.stream()
+// .map(Person::getCar)
+// .map(optCar -> optCar.flatMap(Car::getInsurance))
+// .map(optInsurance -> optInsurance.map(Insurance::getName))
+// .flatMap(Optional::stream)
+// .collect(toSet());
+ return null;
}
}
diff --git a/src/main/java/lambdasinaction/chap6/Grouping.java b/src/main/java/lambdasinaction/chap6/Grouping.java
index 9105cc80..09b1e506 100644
--- a/src/main/java/lambdasinaction/chap6/Grouping.java
+++ b/src/main/java/lambdasinaction/chap6/Grouping.java
@@ -1,16 +1,27 @@
package lambdasinaction.chap6;
-import java.util.*;
-
-import static java.util.stream.Collectors.*;
-import static lambdasinaction.chap6.Dish.dishTags;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
+
+import static java.util.stream.Collectors.collectingAndThen;
+import static java.util.stream.Collectors.counting;
+import static java.util.stream.Collectors.groupingBy;
+import static java.util.stream.Collectors.mapping;
+import static java.util.stream.Collectors.reducing;
+import static java.util.stream.Collectors.summingInt;
+import static java.util.stream.Collectors.toList;
+import static java.util.stream.Collectors.toSet;
import static lambdasinaction.chap6.Dish.menu;
public class Grouping {
- enum CaloricLevel { DIET, NORMAL, FAT };
+ enum CaloricLevel {DIET, NORMAL, FAT}
+
+ ;
- public static void main(String ... args) {
+ public static void main(String... args) {
System.out.println("Dishes grouped by type: " + groupDishesByType());
System.out.println("Dish names grouped by type: " + groupDishNamesByType());
System.out.println("Dish tags grouped by type: " + groupDishTagsByType());
@@ -33,12 +44,14 @@ private static Map> groupDishNamesByType() {
}
private static Map> groupDishTagsByType() {
- return menu.stream().collect(groupingBy(Dish::getType, flatMapping(dish -> dishTags.get( dish.getName() ).stream(), toSet())));
+ return null;
+ //return menu.stream().collect(groupingBy(Dish::getType, flatMapping(dish -> dishTags.get( dish.getName() ).stream(), toSet())));
}
private static Map> groupCaloricDishesByType() {
+ return null;
// return menu.stream().filter(dish -> dish.getCalories() > 500).collect(groupingBy(Dish::getType));
- return menu.stream().collect(groupingBy(Dish::getType, filtering(dish -> dish.getCalories() > 500, toList())));
+ // return menu.stream().collect(groupingBy(Dish::getType, filtering(dish -> dish.getCalories() > 500, toList())));
}
private static Map> groupDishesByCaloricLevel() {
@@ -47,7 +60,7 @@ private static Map> groupDishesByCaloricLevel() {
if (dish.getCalories() <= 400) return CaloricLevel.DIET;
else if (dish.getCalories() <= 700) return CaloricLevel.NORMAL;
else return CaloricLevel.FAT;
- } ));
+ }));
}
private static Map>> groupDishedByTypeAndCaloricLevel() {
@@ -57,7 +70,7 @@ private static Map>> groupDishedByTypeAn
if (dish.getCalories() <= 400) return CaloricLevel.DIET;
else if (dish.getCalories() <= 700) return CaloricLevel.NORMAL;
else return CaloricLevel.FAT;
- } )
+ })
)
);
}
@@ -88,9 +101,11 @@ private static Map sumCaloriesByType() {
private static Map> caloricLevelsByType() {
return menu.stream().collect(
groupingBy(Dish::getType, mapping(
- dish -> { if (dish.getCalories() <= 400) return CaloricLevel.DIET;
- else if (dish.getCalories() <= 700) return CaloricLevel.NORMAL;
- else return CaloricLevel.FAT; },
- toSet() )));
+ dish -> {
+ if (dish.getCalories() <= 400) return CaloricLevel.DIET;
+ else if (dish.getCalories() <= 700) return CaloricLevel.NORMAL;
+ else return CaloricLevel.FAT;
+ },
+ toSet())));
}
}
diff --git a/src/main/java/lambdasinaction/chap6/PartitionPrimeNumbers.java b/src/main/java/lambdasinaction/chap6/PartitionPrimeNumbers.java
index 69d7c4ca..3293a16e 100644
--- a/src/main/java/lambdasinaction/chap6/PartitionPrimeNumbers.java
+++ b/src/main/java/lambdasinaction/chap6/PartitionPrimeNumbers.java
@@ -1,15 +1,26 @@
package lambdasinaction.chap6;
-import java.util.*;
-import java.util.function.*;
-import java.util.stream.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.function.BiConsumer;
+import java.util.function.BinaryOperator;
+import java.util.function.Function;
+import java.util.function.Supplier;
+import java.util.stream.Collector;
+import java.util.stream.IntStream;
+import java.util.stream.Stream;
-import static java.util.stream.Collectors.*;
-import static java.util.stream.Collector.Characteristics.*;
+import static java.util.stream.Collector.Characteristics.IDENTITY_FINISH;
+import static java.util.stream.Collectors.partitioningBy;
public class PartitionPrimeNumbers {
- public static void main(String ... args) {
+ public static void main(String... args) {
System.out.println("Numbers partitioned in prime and non-prime: " + partitionPrimes(100));
System.out.println("Numbers partitioned in prime and non-prime: " + partitionPrimesWithCustomCollector(100));
@@ -21,7 +32,7 @@ public static Map> partitionPrimes(int n) {
}
public static boolean isPrime(int candidate) {
- return IntStream.rangeClosed(2, candidate-1)
+ return IntStream.rangeClosed(2, candidate - 1)
.limit((long) Math.floor(Math.sqrt((double) candidate)) - 1)
.noneMatch(i -> candidate % i == 0);
}
@@ -33,20 +44,22 @@ public static Map> partitionPrimesWithCustomCollector(int
public static boolean isPrime(List primes, Integer candidate) {
double candidateRoot = Math.sqrt((double) candidate);
//return takeWhile(primes, i -> i <= candidateRoot).stream().noneMatch(i -> candidate % i == 0);
- return primes.stream().takeWhile(i -> i <= candidateRoot).noneMatch(i -> candidate % i == 0);
+// return primes.stream().takeWhile(i -> i <= candidateRoot).noneMatch(i -> candidate % i == 0);
+ return true;
}
-/*
- public static List takeWhile(List list, Predicate p) {
- int i = 0;
- for (A item : list) {
- if (!p.test(item)) {
- return list.subList(0, i);
+
+ /*
+ public static List takeWhile(List list, Predicate p) {
+ int i = 0;
+ for (A item : list) {
+ if (!p.test(item)) {
+ return list.subList(0, i);
+ }
+ i++;
}
- i++;
+ return list;
}
- return list;
- }
-*/
+ */
public static class PrimeNumbersCollector
implements Collector>, Map>> {
@@ -61,8 +74,8 @@ public Supplier