From 30ad1c033bf45afbf69105af28805855c9c34ab2 Mon Sep 17 00:00:00 2001 From: DENIS APOLINARIO DA SILVA Date: Wed, 12 Apr 2017 18:15:37 -0300 Subject: [PATCH 1/7] utilizacao maven --- .gitignore | 10 +- anotacoes.md | 13 + pom.xml | 49 ++++ .../java8/samples/StreamTutorial.java | 65 +++++ .../java8/samples/concurrent/Atomic1.java | 0 .../concurrent/CompletableFuture1.java | 0 .../concurrent/ConcurrentHashMap1.java | 0 .../samples/concurrent/ConcurrentUtils.java | 0 .../java8/samples/concurrent/Executors1.java | 0 .../java8/samples/concurrent/Executors2.java | 0 .../java8/samples/concurrent/Executors3.java | 0 .../java8/samples/concurrent/Lock1.java | 0 .../java8/samples/concurrent/Lock2.java | 0 .../java8/samples/concurrent/Lock3.java | 0 .../java8/samples/concurrent/Lock4.java | 0 .../java8/samples/concurrent/Lock5.java | 0 .../java8/samples/concurrent/Lock6.java | 0 .../samples/concurrent/LongAccumulator1.java | 0 .../java8/samples/concurrent/LongAdder1.java | 0 .../java8/samples/concurrent/Semaphore1.java | 0 .../java8/samples/concurrent/Semaphore2.java | 0 .../samples/concurrent/Synchronized1.java | 0 .../samples/concurrent/Synchronized2.java | 0 .../java8/samples/concurrent/Threads1.java | 0 .../java8/samples/lambda/Interface1.java | 0 .../java8/samples/lambda/Lambda1.java | 0 .../java8/samples/lambda/Lambda2.java | 0 .../java8/samples/lambda/Lambda3.java | 0 .../java8/samples/lambda/Lambda4.java | 0 .../java8/samples/lambda/Lambda5.java | 0 .../winterbe/java8/samples/lambda/Person.java | 0 .../java8/samples/misc/Annotations1.java | 0 .../java8/samples/misc/CheckedFunctions.java | 0 .../java8/samples/misc/Concurrency1.java | 0 .../winterbe/java8/samples/misc/Files1.java | 0 .../winterbe/java8/samples/misc/Maps1.java | 0 .../winterbe/java8/samples/misc/Math1.java | 0 .../winterbe/java8/samples/misc/String1.java | 0 .../java8/samples/nashorn/Nashorn1.java | 0 .../java8/samples/nashorn/Nashorn10.java | 0 .../java8/samples/nashorn/Nashorn11.java | 0 .../java8/samples/nashorn/Nashorn2.java | 0 .../java8/samples/nashorn/Nashorn3.java | 0 .../java8/samples/nashorn/Nashorn4.java | 0 .../java8/samples/nashorn/Nashorn5.java | 0 .../java8/samples/nashorn/Nashorn6.java | 0 .../java8/samples/nashorn/Nashorn7.java | 0 .../java8/samples/nashorn/Nashorn8.java | 0 .../java8/samples/nashorn/Nashorn9.java | 0 .../java8/samples/nashorn/Product.java | 0 .../java8/samples/nashorn/SuperRunner.java | 0 .../java8/samples/stream/Optional1.java | 0 .../java8/samples/stream/Optional2.java | 0 .../java8/samples/stream/Streams1.java | 0 .../java8/samples/stream/Streams10.java | 0 .../java8/samples/stream/Streams11.java | 0 .../java8/samples/stream/Streams12.java | 0 .../java8/samples/stream/Streams13.java | 0 .../java8/samples/stream/Streams2.java | 0 .../java8/samples/stream/Streams3.java | 0 .../java8/samples/stream/Streams4.java | 0 .../java8/samples/stream/Streams5.java | 0 .../java8/samples/stream/Streams6.java | 0 .../java8/samples/stream/Streams7.java | 0 .../java8/samples/stream/Streams8.java | 0 .../java8/samples/stream/Streams9.java | 0 .../java8/samples/time/LocalDate1.java | 0 .../java8/samples/time/LocalDateTime1.java | 0 .../java8/samples/time/LocalTime1.java | 0 src/main/java/org/java8/ExemploStream.java | 51 ++++ src/main/java/org/java8/Ordenacao.java | 48 ++++ src/main/java/org/java8/Pessoa.java | 28 ++ src/main/java/org/java8/README | 1 + src/main/java/org/java8/lambda/Gender.java | 6 + src/main/java/org/java8/lambda/Main.java | 16 ++ src/main/java/org/java8/lambda/Person.java | 250 ++++++++++++++++++ .../java/org/java8/lambda/SearchCriteria.java | 50 ++++ .../java/org/java8/lambda/Test01ForEach.java | 28 ++ .../java/org/java8/lambda/Test02Filter.java | 29 ++ .../java/org/java8/lambda/Test03toList.java | 29 ++ src/main/java/org/java8/lambda/Test04Map.java | 54 ++++ src/main/java/org/java8/lambda1/#Untitled-1# | 110 ++++++++ .../org/java8/lambda1/ComparatorTest.java | 47 ++++ src/main/java/org/java8/lambda1/Gender.java | 6 + .../java/org/java8/lambda1/ListenerTest.java | 33 +++ src/main/java/org/java8/lambda1/Main.java | 14 + src/main/java/org/java8/lambda1/Person.java | 224 ++++++++++++++++ .../java/org/java8/lambda1/RunnableTest.java | 28 ++ src/main/java/org/java8/lambda2/Gender.java | 6 + src/main/java/org/java8/lambda2/Main.java | 17 ++ src/main/java/org/java8/lambda2/MyTest.java | 8 + src/main/java/org/java8/lambda2/Person.java | 219 +++++++++++++++ .../java/org/java8/lambda2/Predicate.java | 5 + .../org/java8/lambda2/RoboCallTest01.java | 28 ++ .../org/java8/lambda2/RoboCallTest02.java | 28 ++ .../org/java8/lambda2/RoboCallTest03.java | 49 ++++ .../org/java8/lambda2/RoboCallTest04.java | 40 +++ .../org/java8/lambda2/RoboContactAnon.java | 47 ++++ .../org/java8/lambda2/RoboContactLambda.java | 47 ++++ .../org/java8/lambda2/RoboContactMethods.java | 53 ++++ .../java8/lambda2/RoboContactMethods2.java | 59 +++++ src/main/java/org/java8/lambda3/Gender.java | 6 + src/main/java/org/java8/lambda3/Main.java | 14 + .../java/org/java8/lambda3/NameTestNew.java | 61 +++++ .../java/org/java8/lambda3/NameTestOld.java | 31 +++ src/main/java/org/java8/lambda3/Person.java | 245 +++++++++++++++++ 106 files changed, 2149 insertions(+), 3 deletions(-) create mode 100644 anotacoes.md create mode 100644 pom.xml create mode 100644 src/main/java/com/winterbe/java8/samples/StreamTutorial.java rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Atomic1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/CompletableFuture1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/ConcurrentHashMap1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/ConcurrentUtils.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Executors1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Executors2.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Executors3.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Lock1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Lock2.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Lock3.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Lock4.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Lock5.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Lock6.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/LongAccumulator1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/LongAdder1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Semaphore1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Semaphore2.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Synchronized1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Synchronized2.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Threads1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/lambda/Interface1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/lambda/Lambda1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/lambda/Lambda2.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/lambda/Lambda3.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/lambda/Lambda4.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/lambda/Lambda5.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/lambda/Person.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/misc/Annotations1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/misc/CheckedFunctions.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/misc/Concurrency1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/misc/Files1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/misc/Maps1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/misc/Math1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/misc/String1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Nashorn1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Nashorn10.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Nashorn11.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Nashorn2.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Nashorn3.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Nashorn4.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Nashorn5.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Nashorn6.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Nashorn7.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Nashorn8.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Nashorn9.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Product.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/SuperRunner.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Optional1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Optional2.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams10.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams11.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams12.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams13.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams2.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams3.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams4.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams5.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams6.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams7.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams8.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams9.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/time/LocalDate1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/time/LocalDateTime1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/time/LocalTime1.java (100%) create mode 100644 src/main/java/org/java8/ExemploStream.java create mode 100644 src/main/java/org/java8/Ordenacao.java create mode 100644 src/main/java/org/java8/Pessoa.java create mode 100644 src/main/java/org/java8/README create mode 100644 src/main/java/org/java8/lambda/Gender.java create mode 100644 src/main/java/org/java8/lambda/Main.java create mode 100644 src/main/java/org/java8/lambda/Person.java create mode 100644 src/main/java/org/java8/lambda/SearchCriteria.java create mode 100644 src/main/java/org/java8/lambda/Test01ForEach.java create mode 100644 src/main/java/org/java8/lambda/Test02Filter.java create mode 100644 src/main/java/org/java8/lambda/Test03toList.java create mode 100644 src/main/java/org/java8/lambda/Test04Map.java create mode 100644 src/main/java/org/java8/lambda1/#Untitled-1# create mode 100644 src/main/java/org/java8/lambda1/ComparatorTest.java create mode 100644 src/main/java/org/java8/lambda1/Gender.java create mode 100644 src/main/java/org/java8/lambda1/ListenerTest.java create mode 100644 src/main/java/org/java8/lambda1/Main.java create mode 100644 src/main/java/org/java8/lambda1/Person.java create mode 100644 src/main/java/org/java8/lambda1/RunnableTest.java create mode 100644 src/main/java/org/java8/lambda2/Gender.java create mode 100644 src/main/java/org/java8/lambda2/Main.java create mode 100644 src/main/java/org/java8/lambda2/MyTest.java create mode 100644 src/main/java/org/java8/lambda2/Person.java create mode 100644 src/main/java/org/java8/lambda2/Predicate.java create mode 100644 src/main/java/org/java8/lambda2/RoboCallTest01.java create mode 100644 src/main/java/org/java8/lambda2/RoboCallTest02.java create mode 100644 src/main/java/org/java8/lambda2/RoboCallTest03.java create mode 100644 src/main/java/org/java8/lambda2/RoboCallTest04.java create mode 100644 src/main/java/org/java8/lambda2/RoboContactAnon.java create mode 100644 src/main/java/org/java8/lambda2/RoboContactLambda.java create mode 100644 src/main/java/org/java8/lambda2/RoboContactMethods.java create mode 100644 src/main/java/org/java8/lambda2/RoboContactMethods2.java create mode 100644 src/main/java/org/java8/lambda3/Gender.java create mode 100644 src/main/java/org/java8/lambda3/Main.java create mode 100644 src/main/java/org/java8/lambda3/NameTestNew.java create mode 100644 src/main/java/org/java8/lambda3/NameTestOld.java create mode 100644 src/main/java/org/java8/lambda3/Person.java diff --git a/.gitignore b/.gitignore index f911407f..c8177b40 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,9 @@ -.DS_Store -.idea -*.iml +/target/ +*.jar +/.settings/ +/.classpath +/.project +/.metadata out /bin/ +/target/ diff --git a/anotacoes.md b/anotacoes.md new file mode 100644 index 00000000..f991f0dc --- /dev/null +++ b/anotacoes.md @@ -0,0 +1,13 @@ + +The java.util.function Package + +Of course, Predicate is not the only functional interface provided with Java SE 8. A number of standard interfaces are designed as a starter set for developers. + +Predicate: A property of the object passed as argument +Consumer: An action to be performed with the object passed as argument +Function: Transform a T to a U +Supplier: Provide an instance of a T (such as a factory) +UnaryOperator: A unary operator from T -> T +BinaryOperator: A binary operator from (T, T) -> T +In addition, many of these interfaces also have primitive versions. This should give you a great starting point for your lambda expressions. + diff --git a/pom.xml b/pom.xml new file mode 100644 index 00000000..618bacc8 --- /dev/null +++ b/pom.xml @@ -0,0 +1,49 @@ + + + 4.0.0 + + org.com.tutorial + java8-tutorial + 1.0.0.0 + jar + + + 01/11/2016 + UTF-8 + 3.5.1 + + 1.8 + 1.8 + + + + + + + + + + + src/main/resources + true + + + + ${project.artifactId} + + + + org.apache.maven.plugins + maven-compiler-plugin + ${version-maven-compiler-plugin} + + ${maven.compiler.source} + ${maven.compiler.target} + true + + + + + + diff --git a/src/main/java/com/winterbe/java8/samples/StreamTutorial.java b/src/main/java/com/winterbe/java8/samples/StreamTutorial.java new file mode 100644 index 00000000..4915ef90 --- /dev/null +++ b/src/main/java/com/winterbe/java8/samples/StreamTutorial.java @@ -0,0 +1,65 @@ +package com.winterbe.java8.samples; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.IntStream; +import java.util.stream.Stream; + +/** + * http://winterbe.com/posts/2014/07/31/java8-stream-tutorial-examples/ + * + */ +public class StreamTutorial { + + public static void main(String[] args) { + exemplo1(); + + exemplo2(); + + exemplo3(); + + exemplo4(); + + exemplo5(); + + exemplo6(); + + exemplo7(); + + exemplo8(); + } + + private static void exemplo1() { + List myList = Arrays.asList("a1", "a2", "b1", "c2", "c1"); + myList.stream().filter(s -> s.startsWith("c")).map(String::toUpperCase).sorted().forEach(System.out::println); + } + + private static void exemplo2() { + Arrays.asList("a1", "a2", "a3").stream().findFirst().ifPresent(System.out::println); // a1 + } + + private static void exemplo3() { + Stream.of("a1", "a2", "a3").findFirst().ifPresent(System.out::println); // a1 + } + + private static void exemplo4() { + IntStream.range(1, 4).forEach(System.out::println); + } + + private static void exemplo5() { + Arrays.stream(new int[] {1, 2, 3}).map(n -> 2 * n + 1).average().ifPresent(System.out::println); // 5.0 + } + + private static void exemplo6() { + Stream.of("a1", "a2", "a3").map(s -> s.substring(1)).mapToInt(Integer::parseInt).max().ifPresent(System.out::println); // 3 + } + + private static void exemplo7() { + IntStream.range(1, 4).mapToObj(i -> "a" + i).forEach(System.out::println); + } + + private static void exemplo8() { + Stream.of(1.0, 2.0, 3.0).mapToInt(Double::intValue).mapToObj(i -> "a" + i).forEach(System.out::println);// a1 a2 a3 + } + +} diff --git a/src/com/winterbe/java8/samples/concurrent/Atomic1.java b/src/main/java/com/winterbe/java8/samples/concurrent/Atomic1.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Atomic1.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Atomic1.java diff --git a/src/com/winterbe/java8/samples/concurrent/CompletableFuture1.java b/src/main/java/com/winterbe/java8/samples/concurrent/CompletableFuture1.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/CompletableFuture1.java rename to src/main/java/com/winterbe/java8/samples/concurrent/CompletableFuture1.java diff --git a/src/com/winterbe/java8/samples/concurrent/ConcurrentHashMap1.java b/src/main/java/com/winterbe/java8/samples/concurrent/ConcurrentHashMap1.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/ConcurrentHashMap1.java rename to src/main/java/com/winterbe/java8/samples/concurrent/ConcurrentHashMap1.java diff --git a/src/com/winterbe/java8/samples/concurrent/ConcurrentUtils.java b/src/main/java/com/winterbe/java8/samples/concurrent/ConcurrentUtils.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/ConcurrentUtils.java rename to src/main/java/com/winterbe/java8/samples/concurrent/ConcurrentUtils.java diff --git a/src/com/winterbe/java8/samples/concurrent/Executors1.java b/src/main/java/com/winterbe/java8/samples/concurrent/Executors1.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Executors1.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Executors1.java diff --git a/src/com/winterbe/java8/samples/concurrent/Executors2.java b/src/main/java/com/winterbe/java8/samples/concurrent/Executors2.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Executors2.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Executors2.java diff --git a/src/com/winterbe/java8/samples/concurrent/Executors3.java b/src/main/java/com/winterbe/java8/samples/concurrent/Executors3.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Executors3.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Executors3.java diff --git a/src/com/winterbe/java8/samples/concurrent/Lock1.java b/src/main/java/com/winterbe/java8/samples/concurrent/Lock1.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Lock1.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Lock1.java diff --git a/src/com/winterbe/java8/samples/concurrent/Lock2.java b/src/main/java/com/winterbe/java8/samples/concurrent/Lock2.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Lock2.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Lock2.java diff --git a/src/com/winterbe/java8/samples/concurrent/Lock3.java b/src/main/java/com/winterbe/java8/samples/concurrent/Lock3.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Lock3.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Lock3.java diff --git a/src/com/winterbe/java8/samples/concurrent/Lock4.java b/src/main/java/com/winterbe/java8/samples/concurrent/Lock4.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Lock4.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Lock4.java diff --git a/src/com/winterbe/java8/samples/concurrent/Lock5.java b/src/main/java/com/winterbe/java8/samples/concurrent/Lock5.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Lock5.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Lock5.java diff --git a/src/com/winterbe/java8/samples/concurrent/Lock6.java b/src/main/java/com/winterbe/java8/samples/concurrent/Lock6.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Lock6.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Lock6.java diff --git a/src/com/winterbe/java8/samples/concurrent/LongAccumulator1.java b/src/main/java/com/winterbe/java8/samples/concurrent/LongAccumulator1.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/LongAccumulator1.java rename to src/main/java/com/winterbe/java8/samples/concurrent/LongAccumulator1.java diff --git a/src/com/winterbe/java8/samples/concurrent/LongAdder1.java b/src/main/java/com/winterbe/java8/samples/concurrent/LongAdder1.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/LongAdder1.java rename to src/main/java/com/winterbe/java8/samples/concurrent/LongAdder1.java diff --git a/src/com/winterbe/java8/samples/concurrent/Semaphore1.java b/src/main/java/com/winterbe/java8/samples/concurrent/Semaphore1.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Semaphore1.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Semaphore1.java diff --git a/src/com/winterbe/java8/samples/concurrent/Semaphore2.java b/src/main/java/com/winterbe/java8/samples/concurrent/Semaphore2.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Semaphore2.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Semaphore2.java diff --git a/src/com/winterbe/java8/samples/concurrent/Synchronized1.java b/src/main/java/com/winterbe/java8/samples/concurrent/Synchronized1.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Synchronized1.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Synchronized1.java diff --git a/src/com/winterbe/java8/samples/concurrent/Synchronized2.java b/src/main/java/com/winterbe/java8/samples/concurrent/Synchronized2.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Synchronized2.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Synchronized2.java diff --git a/src/com/winterbe/java8/samples/concurrent/Threads1.java b/src/main/java/com/winterbe/java8/samples/concurrent/Threads1.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Threads1.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Threads1.java diff --git a/src/com/winterbe/java8/samples/lambda/Interface1.java b/src/main/java/com/winterbe/java8/samples/lambda/Interface1.java similarity index 100% rename from src/com/winterbe/java8/samples/lambda/Interface1.java rename to src/main/java/com/winterbe/java8/samples/lambda/Interface1.java diff --git a/src/com/winterbe/java8/samples/lambda/Lambda1.java b/src/main/java/com/winterbe/java8/samples/lambda/Lambda1.java similarity index 100% rename from src/com/winterbe/java8/samples/lambda/Lambda1.java rename to src/main/java/com/winterbe/java8/samples/lambda/Lambda1.java diff --git a/src/com/winterbe/java8/samples/lambda/Lambda2.java b/src/main/java/com/winterbe/java8/samples/lambda/Lambda2.java similarity index 100% rename from src/com/winterbe/java8/samples/lambda/Lambda2.java rename to src/main/java/com/winterbe/java8/samples/lambda/Lambda2.java diff --git a/src/com/winterbe/java8/samples/lambda/Lambda3.java b/src/main/java/com/winterbe/java8/samples/lambda/Lambda3.java similarity index 100% rename from src/com/winterbe/java8/samples/lambda/Lambda3.java rename to src/main/java/com/winterbe/java8/samples/lambda/Lambda3.java diff --git a/src/com/winterbe/java8/samples/lambda/Lambda4.java b/src/main/java/com/winterbe/java8/samples/lambda/Lambda4.java similarity index 100% rename from src/com/winterbe/java8/samples/lambda/Lambda4.java rename to src/main/java/com/winterbe/java8/samples/lambda/Lambda4.java diff --git a/src/com/winterbe/java8/samples/lambda/Lambda5.java b/src/main/java/com/winterbe/java8/samples/lambda/Lambda5.java similarity index 100% rename from src/com/winterbe/java8/samples/lambda/Lambda5.java rename to src/main/java/com/winterbe/java8/samples/lambda/Lambda5.java diff --git a/src/com/winterbe/java8/samples/lambda/Person.java b/src/main/java/com/winterbe/java8/samples/lambda/Person.java similarity index 100% rename from src/com/winterbe/java8/samples/lambda/Person.java rename to src/main/java/com/winterbe/java8/samples/lambda/Person.java diff --git a/src/com/winterbe/java8/samples/misc/Annotations1.java b/src/main/java/com/winterbe/java8/samples/misc/Annotations1.java similarity index 100% rename from src/com/winterbe/java8/samples/misc/Annotations1.java rename to src/main/java/com/winterbe/java8/samples/misc/Annotations1.java diff --git a/src/com/winterbe/java8/samples/misc/CheckedFunctions.java b/src/main/java/com/winterbe/java8/samples/misc/CheckedFunctions.java similarity index 100% rename from src/com/winterbe/java8/samples/misc/CheckedFunctions.java rename to src/main/java/com/winterbe/java8/samples/misc/CheckedFunctions.java diff --git a/src/com/winterbe/java8/samples/misc/Concurrency1.java b/src/main/java/com/winterbe/java8/samples/misc/Concurrency1.java similarity index 100% rename from src/com/winterbe/java8/samples/misc/Concurrency1.java rename to src/main/java/com/winterbe/java8/samples/misc/Concurrency1.java diff --git a/src/com/winterbe/java8/samples/misc/Files1.java b/src/main/java/com/winterbe/java8/samples/misc/Files1.java similarity index 100% rename from src/com/winterbe/java8/samples/misc/Files1.java rename to src/main/java/com/winterbe/java8/samples/misc/Files1.java diff --git a/src/com/winterbe/java8/samples/misc/Maps1.java b/src/main/java/com/winterbe/java8/samples/misc/Maps1.java similarity index 100% rename from src/com/winterbe/java8/samples/misc/Maps1.java rename to src/main/java/com/winterbe/java8/samples/misc/Maps1.java diff --git a/src/com/winterbe/java8/samples/misc/Math1.java b/src/main/java/com/winterbe/java8/samples/misc/Math1.java similarity index 100% rename from src/com/winterbe/java8/samples/misc/Math1.java rename to src/main/java/com/winterbe/java8/samples/misc/Math1.java diff --git a/src/com/winterbe/java8/samples/misc/String1.java b/src/main/java/com/winterbe/java8/samples/misc/String1.java similarity index 100% rename from src/com/winterbe/java8/samples/misc/String1.java rename to src/main/java/com/winterbe/java8/samples/misc/String1.java diff --git a/src/com/winterbe/java8/samples/nashorn/Nashorn1.java b/src/main/java/com/winterbe/java8/samples/nashorn/Nashorn1.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Nashorn1.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Nashorn1.java diff --git a/src/com/winterbe/java8/samples/nashorn/Nashorn10.java b/src/main/java/com/winterbe/java8/samples/nashorn/Nashorn10.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Nashorn10.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Nashorn10.java diff --git a/src/com/winterbe/java8/samples/nashorn/Nashorn11.java b/src/main/java/com/winterbe/java8/samples/nashorn/Nashorn11.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Nashorn11.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Nashorn11.java diff --git a/src/com/winterbe/java8/samples/nashorn/Nashorn2.java b/src/main/java/com/winterbe/java8/samples/nashorn/Nashorn2.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Nashorn2.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Nashorn2.java diff --git a/src/com/winterbe/java8/samples/nashorn/Nashorn3.java b/src/main/java/com/winterbe/java8/samples/nashorn/Nashorn3.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Nashorn3.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Nashorn3.java diff --git a/src/com/winterbe/java8/samples/nashorn/Nashorn4.java b/src/main/java/com/winterbe/java8/samples/nashorn/Nashorn4.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Nashorn4.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Nashorn4.java diff --git a/src/com/winterbe/java8/samples/nashorn/Nashorn5.java b/src/main/java/com/winterbe/java8/samples/nashorn/Nashorn5.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Nashorn5.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Nashorn5.java diff --git a/src/com/winterbe/java8/samples/nashorn/Nashorn6.java b/src/main/java/com/winterbe/java8/samples/nashorn/Nashorn6.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Nashorn6.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Nashorn6.java diff --git a/src/com/winterbe/java8/samples/nashorn/Nashorn7.java b/src/main/java/com/winterbe/java8/samples/nashorn/Nashorn7.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Nashorn7.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Nashorn7.java diff --git a/src/com/winterbe/java8/samples/nashorn/Nashorn8.java b/src/main/java/com/winterbe/java8/samples/nashorn/Nashorn8.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Nashorn8.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Nashorn8.java diff --git a/src/com/winterbe/java8/samples/nashorn/Nashorn9.java b/src/main/java/com/winterbe/java8/samples/nashorn/Nashorn9.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Nashorn9.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Nashorn9.java diff --git a/src/com/winterbe/java8/samples/nashorn/Product.java b/src/main/java/com/winterbe/java8/samples/nashorn/Product.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Product.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Product.java diff --git a/src/com/winterbe/java8/samples/nashorn/SuperRunner.java b/src/main/java/com/winterbe/java8/samples/nashorn/SuperRunner.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/SuperRunner.java rename to src/main/java/com/winterbe/java8/samples/nashorn/SuperRunner.java diff --git a/src/com/winterbe/java8/samples/stream/Optional1.java b/src/main/java/com/winterbe/java8/samples/stream/Optional1.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Optional1.java rename to src/main/java/com/winterbe/java8/samples/stream/Optional1.java diff --git a/src/com/winterbe/java8/samples/stream/Optional2.java b/src/main/java/com/winterbe/java8/samples/stream/Optional2.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Optional2.java rename to src/main/java/com/winterbe/java8/samples/stream/Optional2.java diff --git a/src/com/winterbe/java8/samples/stream/Streams1.java b/src/main/java/com/winterbe/java8/samples/stream/Streams1.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams1.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams1.java diff --git a/src/com/winterbe/java8/samples/stream/Streams10.java b/src/main/java/com/winterbe/java8/samples/stream/Streams10.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams10.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams10.java diff --git a/src/com/winterbe/java8/samples/stream/Streams11.java b/src/main/java/com/winterbe/java8/samples/stream/Streams11.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams11.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams11.java diff --git a/src/com/winterbe/java8/samples/stream/Streams12.java b/src/main/java/com/winterbe/java8/samples/stream/Streams12.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams12.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams12.java diff --git a/src/com/winterbe/java8/samples/stream/Streams13.java b/src/main/java/com/winterbe/java8/samples/stream/Streams13.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams13.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams13.java diff --git a/src/com/winterbe/java8/samples/stream/Streams2.java b/src/main/java/com/winterbe/java8/samples/stream/Streams2.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams2.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams2.java diff --git a/src/com/winterbe/java8/samples/stream/Streams3.java b/src/main/java/com/winterbe/java8/samples/stream/Streams3.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams3.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams3.java diff --git a/src/com/winterbe/java8/samples/stream/Streams4.java b/src/main/java/com/winterbe/java8/samples/stream/Streams4.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams4.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams4.java diff --git a/src/com/winterbe/java8/samples/stream/Streams5.java b/src/main/java/com/winterbe/java8/samples/stream/Streams5.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams5.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams5.java diff --git a/src/com/winterbe/java8/samples/stream/Streams6.java b/src/main/java/com/winterbe/java8/samples/stream/Streams6.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams6.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams6.java diff --git a/src/com/winterbe/java8/samples/stream/Streams7.java b/src/main/java/com/winterbe/java8/samples/stream/Streams7.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams7.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams7.java diff --git a/src/com/winterbe/java8/samples/stream/Streams8.java b/src/main/java/com/winterbe/java8/samples/stream/Streams8.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams8.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams8.java diff --git a/src/com/winterbe/java8/samples/stream/Streams9.java b/src/main/java/com/winterbe/java8/samples/stream/Streams9.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams9.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams9.java diff --git a/src/com/winterbe/java8/samples/time/LocalDate1.java b/src/main/java/com/winterbe/java8/samples/time/LocalDate1.java similarity index 100% rename from src/com/winterbe/java8/samples/time/LocalDate1.java rename to src/main/java/com/winterbe/java8/samples/time/LocalDate1.java diff --git a/src/com/winterbe/java8/samples/time/LocalDateTime1.java b/src/main/java/com/winterbe/java8/samples/time/LocalDateTime1.java similarity index 100% rename from src/com/winterbe/java8/samples/time/LocalDateTime1.java rename to src/main/java/com/winterbe/java8/samples/time/LocalDateTime1.java diff --git a/src/com/winterbe/java8/samples/time/LocalTime1.java b/src/main/java/com/winterbe/java8/samples/time/LocalTime1.java similarity index 100% rename from src/com/winterbe/java8/samples/time/LocalTime1.java rename to src/main/java/com/winterbe/java8/samples/time/LocalTime1.java diff --git a/src/main/java/org/java8/ExemploStream.java b/src/main/java/org/java8/ExemploStream.java new file mode 100644 index 00000000..931b3d69 --- /dev/null +++ b/src/main/java/org/java8/ExemploStream.java @@ -0,0 +1,51 @@ +package org.java8; + +import java.util.Arrays; +import java.util.IntSummaryStatistics; +import java.util.List; +import java.util.stream.Stream; + +public class ExemploStream { + + public static void main(String[] args) { + List listaPessoas = Arrays.asList(new Pessoa("Joao", 32), + new Pessoa("Antonio", 20), + new Pessoa("Maria", 18), + new Pessoa("Margareth", 15), + new Pessoa("Angela", 30)); + + Stream pessoas = listaPessoas.stream(); + Integer somaIdades = pessoas.filter(p -> p.getNome().startsWith("A")).mapToInt(p -> p.getIdade()).sum(); + System.out.println(somaIdades); + + Stream pessoasParallel = listaPessoas.parallelStream(); + somaIdades = pessoasParallel.filter(p -> p.getNome().startsWith("M")).mapToInt(p -> p.getIdade()).sum(); + System.out.println(somaIdades); + + + Stream pessoasStream = listaPessoas.stream(); + Integer maiorIdade = pessoasStream + .mapToInt(p-> p.getIdade()).max(). getAsInt(); + System.out.println(maiorIdade); + + Stream pessoasStream1 = listaPessoas.stream(); + Integer menorIdade = pessoasStream1 + .mapToInt(p -> p.getIdade()).min().getAsInt(); + System.out.println(menorIdade); + + + + + + Stream streamPessoas = listaPessoas.stream(); + + IntSummaryStatistics intSummStat = streamPessoas.filter(p -> p.getNome().startsWith("A")) + .mapToInt(p -> p.getIdade()).summaryStatistics(); + + System.out.println(intSummStat.getSum()); + System.out.println(intSummStat.getMax()); + System.out.println(intSummStat.getMin()); + + + } +} diff --git a/src/main/java/org/java8/Ordenacao.java b/src/main/java/org/java8/Ordenacao.java new file mode 100644 index 00000000..a659438b --- /dev/null +++ b/src/main/java/org/java8/Ordenacao.java @@ -0,0 +1,48 @@ +package org.java8; + +import java.util.Arrays; +import java.util.Comparator; +import java.util.List; +import java.util.OptionalDouble; +import java.util.function.Function; +import java.util.stream.IntStream; +import java.util.stream.Stream; + +/** + * Exemplos Caelum + * + */ +public class Ordenacao { + + public static void main(String[] args) { + List palavras = Arrays.asList("rodrigo", "paulo", "caelum"); + + // + palavras.sort((s1, s2) -> Integer.compare(s1.length(), s2.length())); + palavras.forEach(s -> System.out.println(s)); + + // + palavras.sort(Comparator.comparing(s -> s.length())); + palavras.sort(Comparator.comparing(String::length)); + palavras.sort(Comparator.comparingInt(String::length)); + + // + Function function = s -> s.length(); + Function function1 = String::length; + + // + palavras.stream().filter(s -> s.length() < 6).forEach(System.out::println); + + // + Stream stream = palavras.stream().map(String::length); + // melhor utilizar + IntStream intStream = palavras.stream().mapToInt(String::length); + + // + OptionalDouble media = palavras.stream().mapToInt(String::length).average(); + System.out.println(media.orElse(0)); + + + new Thread(() -> System.out.println("thread nova rodando")).start(); + } +} diff --git a/src/main/java/org/java8/Pessoa.java b/src/main/java/org/java8/Pessoa.java new file mode 100644 index 00000000..3280831e --- /dev/null +++ b/src/main/java/org/java8/Pessoa.java @@ -0,0 +1,28 @@ +package org.java8; + +public class Pessoa { + private String nome; + private Integer idade; + + public Pessoa(String nome, Integer idade) { + this.nome = nome; + this.idade = idade; + } + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public Integer getIdade() { + return idade; + } + + public void setIdade(Integer idade) { + this.idade = idade; + } + +} diff --git a/src/main/java/org/java8/README b/src/main/java/org/java8/README new file mode 100644 index 00000000..0d91b5d7 --- /dev/null +++ b/src/main/java/org/java8/README @@ -0,0 +1 @@ +Exemplos da Oracle \ No newline at end of file diff --git a/src/main/java/org/java8/lambda/Gender.java b/src/main/java/org/java8/lambda/Gender.java new file mode 100644 index 00000000..dede0728 --- /dev/null +++ b/src/main/java/org/java8/lambda/Gender.java @@ -0,0 +1,6 @@ +package org.java8.lambda; + +/** + * @author MikeW + */ +public enum Gender { MALE, FEMALE } diff --git a/src/main/java/org/java8/lambda/Main.java b/src/main/java/org/java8/lambda/Main.java new file mode 100644 index 00000000..f0196009 --- /dev/null +++ b/src/main/java/org/java8/lambda/Main.java @@ -0,0 +1,16 @@ +package org.java8.lambda; + +/** + * @author MikeW + */ +public class Main { + + public static void main(String[] args) { + + Test01ForEach.main(args); + Test02Filter.main(args); + Test03toList.main(args); + Test04Map.main(args); + + } +} diff --git a/src/main/java/org/java8/lambda/Person.java b/src/main/java/org/java8/lambda/Person.java new file mode 100644 index 00000000..cb06364c --- /dev/null +++ b/src/main/java/org/java8/lambda/Person.java @@ -0,0 +1,250 @@ +package org.java8.lambda; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Function; +import java.util.Map; +import java.util.HashMap; + + +/** + * @author MikeW + */ +public class Person { + private String givenName; + private String surName; + private int age; + private Gender gender; + private String eMail; + private String phone; + private String address; + + + public static class Builder{ + + private String givenName=""; + private String surName=""; + private int age = 0; + private Gender gender = Gender.FEMALE; + private String eMail = ""; + private String phone = ""; + private String address = ""; + + public Person.Builder givenName(String givenName){ + this.givenName = givenName; + return this; + } + + public Person.Builder surName(String surName){ + this.surName = surName; + return this; + } + + public Person.Builder age (int val){ + age = val; + return this; + } + + public Person.Builder gender(Gender val){ + gender = val; + return this; + } + + public Person.Builder email(String val){ + eMail = val; + return this; + } + + public Person.Builder phoneNumber(String val){ + phone = val; + return this; + } + + public Person.Builder address(String val){ + address = val; + return this; + } + + public Person build(){ + return new Person(this); + } + } + + + + private Person(){ + super(); + } + + private Person(Person.Builder builder){ + + givenName = builder.givenName; + surName = builder.surName; + age = builder.age; + gender = builder.gender; + eMail = builder.eMail; + phone = builder.phone; + address = builder.address; + } + + public String getGivenName(){ + return givenName; + } + + public String getSurName(){ + return surName; + } + + public int getAge(){ + return age; + } + + public Gender getGender(){ + return gender; + } + + public String getEmail(){ + return eMail; + } + + public String getPhone(){ + return phone; + } + + public String getAddress(){ + return address; + } + + public void print(){ + System.out.println( + "\nName: " + givenName + " " + surName + "\n" + + "Age: " + age + "\n" + + "Gender: " + gender + "\n" + + "eMail: " + eMail + "\n" + + "Phone: " + phone + "\n" + + "Address: " + address + "\n" + ); + } + + public String printCustom(Function f){ + return f.apply(this); + } + + + public void printWesternName(){ + + System.out.println("\nName: " + this.getGivenName() + " " + this.getSurName() + "\n" + + "Age: " + this.getAge() + " " + "Gender: " + this.getGender() + "\n" + + "EMail: " + this.getEmail() + "\n" + + "Phone: " + this.getPhone() + "\n" + + "Address: " + this.getAddress()); + } + + + public void printEasternName(){ + + System.out.println("\nName: " + this.getSurName() + " " + this.getGivenName() + "\n" + + "Age: " + this.getAge() + " " + "Gender: " + this.getGender() + "\n" + + "EMail: " + this.getEmail() + "\n" + + "Phone: " + this.getPhone() + "\n" + + "Address: " + this.getAddress()); + } + + + @Override + public String toString(){ + return "Name: " + givenName + " " + surName + "\n" + "Age: " + age + " Gender: " + gender + "\n" + "eMail: " + eMail + "\n"; + } + + public static List createShortList(){ + List people = new ArrayList<>(); + + people.add( + new Person.Builder() + .givenName("Bob") + .surName("Baker") + .age(21) + .gender(Gender.MALE) + .email("bob.baker@example.com") + .phoneNumber("201-121-4678") + .address("44 4th St, Smallville, KS 12333") + .build() + ); + + people.add( + new Person.Builder() + .givenName("Jane") + .surName("Doe") + .age(25) + .gender(Gender.FEMALE) + .email("jane.doe@example.com") + .phoneNumber("202-123-4678") + .address("33 3rd St, Smallville, KS 12333") + .build() + ); + + people.add( + new Person.Builder() + .givenName("John") + .surName("Doe") + .age(25) + .gender(Gender.MALE) + .email("john.doe@example.com") + .phoneNumber("202-123-4678") + .address("33 3rd St, Smallville, KS 12333") + .build() + ); + + people.add( + new Person.Builder() + .givenName("James") + .surName("Johnson") + .age(45) + .gender(Gender.MALE) + .email("james.johnson@example.com") + .phoneNumber("333-456-1233") + .address("201 2nd St, New York, NY 12111") + .build() + ); + + people.add( + new Person.Builder() + .givenName("Joe") + .surName("Bailey") + .age(67) + .gender(Gender.MALE) + .email("joebob.bailey@example.com") + .phoneNumber("112-111-1111") + .address("111 1st St, Town, CA 11111") + .build() + ); + + people.add( + new Person.Builder() + .givenName("Phil") + .surName("Smith") + .age(55) + .gender(Gender.MALE) + .email("phil.smith@examp;e.com") + .phoneNumber("222-33-1234") + .address("22 2nd St, New Park, CO 222333") + .build() + ); + + people.add( + new Person.Builder() + .givenName("Betty") + .surName("Jones") + .age(85) + .gender(Gender.FEMALE) + .email("betty.jones@example.com") + .phoneNumber("211-33-1234") + .address("22 4th St, New Park, CO 222333") + .build() + ); + + + return people; + } + +} diff --git a/src/main/java/org/java8/lambda/SearchCriteria.java b/src/main/java/org/java8/lambda/SearchCriteria.java new file mode 100644 index 00000000..28679db8 --- /dev/null +++ b/src/main/java/org/java8/lambda/SearchCriteria.java @@ -0,0 +1,50 @@ +package org.java8.lambda; + +import java.util.HashMap; +import java.util.Map; +import java.util.function.Predicate; + +/** + * + * @author MikeW + */ +public class SearchCriteria { + + private final Map> searchMap = new HashMap<>(); + + private SearchCriteria() { + super(); + initSearchMap(); + } + + private void initSearchMap() { + Predicate allDrivers = p -> p.getAge() >= 16; + Predicate allDraftees = p -> p.getAge() >= 18 && p.getAge() <= 25 && p.getGender() == Gender.MALE; + Predicate allPilots = p -> p.getAge() >= 23 && p.getAge() <= 65; + + searchMap.put("allDrivers", allDrivers); + searchMap.put("allDraftees", allDraftees); + searchMap.put("allPilots", allPilots); + + } + + public Predicate getCriteria(String PredicateName) { + Predicate target; + + target = searchMap.get(PredicateName); + + if (target == null) { + + System.out.println("Search Criteria not found... "); + System.exit(1); + + } + + return target; + + } + + public static SearchCriteria getInstance() { + return new SearchCriteria(); + } +} diff --git a/src/main/java/org/java8/lambda/Test01ForEach.java b/src/main/java/org/java8/lambda/Test01ForEach.java new file mode 100644 index 00000000..efaacd13 --- /dev/null +++ b/src/main/java/org/java8/lambda/Test01ForEach.java @@ -0,0 +1,28 @@ +package org.java8.lambda; + +import java.util.List; +import java.util.Map; +import java.util.function.Function; + +/** + * + * @author MikeW + */ +public class Test01ForEach { + + public static void main(String[] args) { + + List pl = Person.createShortList(); + + System.out.println("\n=== Western Phone List ==="); + pl.forEach( p -> p.printWesternName() ); + + System.out.println("\n=== Eastern Phone List ==="); + pl.forEach(Person::printEasternName); + + System.out.println("\n=== Custom Phone List ==="); + pl.forEach(p -> { System.out.println(p.printCustom(r -> "Name: " + r.getGivenName() + " EMail: " + r.getEmail())); }); + + } + +} diff --git a/src/main/java/org/java8/lambda/Test02Filter.java b/src/main/java/org/java8/lambda/Test02Filter.java new file mode 100644 index 00000000..5e337122 --- /dev/null +++ b/src/main/java/org/java8/lambda/Test02Filter.java @@ -0,0 +1,29 @@ +package org.java8.lambda; + +import java.util.List; + +/** + * + * @author MikeW + */ +public class Test02Filter { + + public static void main(String[] args) { + + List pl = Person.createShortList(); + + SearchCriteria search = SearchCriteria.getInstance(); + + System.out.println("\n=== Western Pilot Phone List ==="); + + pl.stream().filter(search.getCriteria("allPilots")) + .forEach(Person::printWesternName); + + + System.out.println("\n=== Eastern Draftee Phone List ==="); + + pl.stream().filter(search.getCriteria("allDraftees")) + .forEach(Person::printEasternName); + + } +} diff --git a/src/main/java/org/java8/lambda/Test03toList.java b/src/main/java/org/java8/lambda/Test03toList.java new file mode 100644 index 00000000..423ea219 --- /dev/null +++ b/src/main/java/org/java8/lambda/Test03toList.java @@ -0,0 +1,29 @@ +package org.java8.lambda; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * + * @author MikeW + */ +public class Test03toList { + + public static void main(String[] args) { + + List pl = Person.createShortList(); + + SearchCriteria search = SearchCriteria.getInstance(); + + // Make a new list after filtering. + List pilotList = pl + .stream() + .filter(search.getCriteria("allPilots")) + .collect(Collectors.toList()); + + System.out.println("\n=== Western Pilot Phone List ==="); + pilotList.forEach(Person::printWesternName); + + } + +} diff --git a/src/main/java/org/java8/lambda/Test04Map.java b/src/main/java/org/java8/lambda/Test04Map.java new file mode 100644 index 00000000..f8030380 --- /dev/null +++ b/src/main/java/org/java8/lambda/Test04Map.java @@ -0,0 +1,54 @@ +package org.java8.lambda; + +import java.util.List; +import java.util.OptionalDouble; + +/** + * + * @author MikeW + */ +public class Test04Map { + + public static void main(String[] args) { + List pl = Person.createShortList(); + + SearchCriteria search = SearchCriteria.getInstance(); + + // Calc average age of pilots old style + System.out.println("== Calc Old Style =="); + int sum = 0; + int count = 0; + + for (Person p:pl){ + if (p.getAge() >= 23 && p.getAge() <= 65 ){ + sum = sum + p.getAge(); + count++; + } + } + + long average = sum / count; + System.out.println("Total Ages: " + sum); + System.out.println("Average Age: " + average); + + + // Get sum of ages + System.out.println("\n== Calc New Style =="); + long totalAge = pl + .stream() + .filter(search.getCriteria("allPilots")) + .mapToInt(p -> p.getAge()) + .sum(); + + // Get average of ages + OptionalDouble averageAge = pl + .parallelStream() + .filter(search.getCriteria("allPilots")) + .mapToDouble(p -> p.getAge()) + .average(); + + System.out.println("Total Ages: " + totalAge); + System.out.println("Average Age: " + averageAge.getAsDouble()); + + } + +} diff --git a/src/main/java/org/java8/lambda1/#Untitled-1# b/src/main/java/org/java8/lambda1/#Untitled-1# new file mode 100644 index 00000000..d6fb61b2 --- /dev/null +++ b/src/main/java/org/java8/lambda1/#Untitled-1# @@ -0,0 +1,110 @@ + + +ListenerTest.java + + + +
13 public class ListenerTest {
+14   public static void main(String[] args) {
+15         
+16     JButton testButton = new JButton("Test Button");
+17     testButton.addActionListener(new ActionListener(){
+18     @Override public void actionPerformed(ActionEvent ae){
+19         System.out.println("Click Detected by Anon Class");
+20       }
+21     });
+22     
+23     testButton.addActionListener(e -> System.out.println("Click Detected by Lambda Listner"));
+24     
+25     // Swing stuff
+26     JFrame frame = new JFrame("Listener Test");
+27     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+28     frame.add(testButton, BorderLayout.CENTER);
+29     frame.pack();
+30     frame.setVisible(true);
+31     
+32   }
+33 }
+
+ + + diff --git a/src/main/java/org/java8/lambda1/ComparatorTest.java b/src/main/java/org/java8/lambda1/ComparatorTest.java new file mode 100644 index 00000000..6ffcfa10 --- /dev/null +++ b/src/main/java/org/java8/lambda1/ComparatorTest.java @@ -0,0 +1,47 @@ +package org.java8.lambda1; + +import java.util.Collections; +import java.util.List; +import java.util.Comparator; + +/** + * @author MikeW + */ +public class ComparatorTest { + + public static void main(String[] args) { + + List personList = Person.createShortList(); + + // Sort with Inner Class + Collections.sort(personList, new Comparator(){ + public int compare(Person p1, Person p2){ + return p1.getSurName().compareTo(p2.getSurName()); + } + }); + + System.out.println("=== Sorted Asc SurName ==="); + for(Person p:personList){ + p.printName(); + } + + // Use Lambda instead + + // Print Asc + System.out.println("=== Sorted Asc SurName ==="); + Collections.sort(personList, (Person p1, Person p2) -> p1.getSurName().compareTo(p2.getSurName())); + + for(Person p:personList){ + p.printName(); + } + + // Print Desc + System.out.println("=== Sorted Desc SurName ==="); + Collections.sort(personList, (p1, p2) -> p2.getSurName().compareTo(p1.getSurName())); + + for(Person p:personList){ + p.printName(); + } + + } +} \ No newline at end of file diff --git a/src/main/java/org/java8/lambda1/Gender.java b/src/main/java/org/java8/lambda1/Gender.java new file mode 100644 index 00000000..dbfe50c3 --- /dev/null +++ b/src/main/java/org/java8/lambda1/Gender.java @@ -0,0 +1,6 @@ +package org.java8.lambda1; + +/** + * @author MikeW + */ +public enum Gender { MALE, FEMALE } diff --git a/src/main/java/org/java8/lambda1/ListenerTest.java b/src/main/java/org/java8/lambda1/ListenerTest.java new file mode 100644 index 00000000..e80790b8 --- /dev/null +++ b/src/main/java/org/java8/lambda1/ListenerTest.java @@ -0,0 +1,33 @@ +package org.java8.lambda1; + +import java.awt.BorderLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import javax.swing.JButton; +import javax.swing.JFrame; + +/** + * + * @author MikeW + */ +public class ListenerTest { + public static void main(String[] args) { + + JButton testButton = new JButton("Test Button"); + testButton.addActionListener(new ActionListener(){ + @Override public void actionPerformed(ActionEvent ae){ + System.out.println("Click Detected by Anon Class"); + } + }); + + testButton.addActionListener(e -> System.out.println("Click Detected by Lambda Listner")); + + // Swing stuff + JFrame frame = new JFrame("Listener Test"); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.add(testButton, BorderLayout.CENTER); + frame.pack(); + frame.setVisible(true); + + } +} diff --git a/src/main/java/org/java8/lambda1/Main.java b/src/main/java/org/java8/lambda1/Main.java new file mode 100644 index 00000000..a4011846 --- /dev/null +++ b/src/main/java/org/java8/lambda1/Main.java @@ -0,0 +1,14 @@ +package org.java8.lambda1; + +/** + * @author mikew + */ +public class Main { + + public static void main(String[] args) { + + RunnableTest.main(args); + ComparatorTest.main(args); + ListenerTest.main(args); + } +} diff --git a/src/main/java/org/java8/lambda1/Person.java b/src/main/java/org/java8/lambda1/Person.java new file mode 100644 index 00000000..bd659903 --- /dev/null +++ b/src/main/java/org/java8/lambda1/Person.java @@ -0,0 +1,224 @@ +package org.java8.lambda1; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author MikeW + */ +public class Person { + private String givenName; + private String surName; + private int age; + private Gender gender; + private String eMail; + private String phone; + private String address; + + public static class Builder{ + + private String givenName=""; + private String surName=""; + private int age = 0; + private Gender gender = Gender.FEMALE; + private String eMail = ""; + private String phone = ""; + private String address = ""; + + public Person.Builder givenName(String givenName){ + this.givenName = givenName; + return this; + } + + public Person.Builder surName(String surName){ + this.surName = surName; + return this; + } + + public Person.Builder age (int val){ + age = val; + return this; + } + + public Person.Builder gender(Gender val){ + gender = val; + return this; + } + + public Person.Builder email(String val){ + eMail = val; + return this; + } + + public Person.Builder phoneNumber(String val){ + phone = val; + return this; + } + + public Person.Builder address(String val){ + address = val; + return this; + } + + public Person build(){ + return new Person(this); + } + } + + private Person(){ + super(); + } + + private Person(Person.Builder builder){ + givenName = builder.givenName; + surName = builder.surName; + age = builder.age; + gender = builder.gender; + eMail = builder.eMail; + phone = builder.phone; + address = builder.address; + + } + + public String getGivenName(){ + return givenName; + } + + public String getSurName(){ + return surName; + } + + public int getAge(){ + return age; + } + + public Gender getGender() { + return gender; + } + + public String getEmail() { + return eMail; + } + + public String getPhone() { + return phone; + } + + public String getAddress() { + return address; + } + +public void print(){ + System.out.println( + "\nName: " + givenName + " " + surName + "\n" + + "Age: " + age + "\n" + + "Gender: " + getGender() + "\n" + + "eMail: " + eMail + "\n" + + "Phone: " + phone + "\n" + + "Address: " + address + "\n" + ); + } + + public void printName(){ + System.out.println( + "Name: " + givenName + " " + surName); + } + + @Override + public String toString(){ + return "Name: " + givenName + " " + surName + "\n" + "Age: " + age + " Gender: " + getGender() + "\n" + "eMail: " + eMail + "\n" + "Address: " + address + "\n"; + } + + + public static List createShortList(){ + List people = new ArrayList<>(); + + people.add( + new Person.Builder() + .givenName("Bob") + .surName("Baker") + .age(21) + .gender(Gender.MALE) + .email("bob.baker@example.com") + .phoneNumber("201-121-4678") + .address("44 4th St, Smallville, KS 12333") + .build() + ); + + people.add( + new Person.Builder() + .givenName("Jane") + .surName("Doe") + .age(25) + .gender(Gender.FEMALE) + .email("jane.doe@example.com") + .phoneNumber("202-123-4678") + .address("33 3rd St, Smallville, KS 12333") + .build() + ); + + people.add( + new Person.Builder() + .givenName("John") + .surName("Doe") + .age(25) + .gender(Gender.MALE) + .email("john.doe@example.com") + .phoneNumber("202-123-4678") + .address("33 3rd St, Smallville, KS 12333") + .build() + ); + + people.add( + new Person.Builder() + .givenName("James") + .surName("Johnson") + .age(45) + .gender(Gender.MALE) + .email("james.johnson@example.com") + .phoneNumber("333-456-1233") + .address("201 2nd St, New York, NY 12111") + .build() + ); + + people.add( + new Person.Builder() + .givenName("Joe") + .surName("Bailey") + .age(67) + .gender(Gender.MALE) + .email("joebob.bailey@example.com") + .phoneNumber("112-111-1111") + .address("111 1st St, Town, CA 11111") + .build() + ); + + people.add( + new Person.Builder() + .givenName("Phil") + .surName("Smith") + .age(55) + .gender(Gender.MALE) + .email("phil.smith@examp;e.com") + .phoneNumber("222-33-1234") + .address("22 2nd St, New Park, CO 222333") + .build() + ); + + people.add( + new Person.Builder() + .givenName("Betty") + .surName("Jones") + .age(85) + .gender(Gender.FEMALE) + .email("betty.jones@example.com") + .phoneNumber("211-33-1234") + .address("22 4th St, New Park, CO 222333") + .build() + ); + + + return people; + } + +} diff --git a/src/main/java/org/java8/lambda1/RunnableTest.java b/src/main/java/org/java8/lambda1/RunnableTest.java new file mode 100644 index 00000000..8c838d23 --- /dev/null +++ b/src/main/java/org/java8/lambda1/RunnableTest.java @@ -0,0 +1,28 @@ +package org.java8.lambda1; + +/** + * @author MikeW + */ +public class RunnableTest { + public static void main(String[] args) { + + System.out.println("=== RunnableTest ==="); + + // Anonymous Runnable + Runnable r1 = new Runnable(){ + + @Override + public void run(){ + System.out.println("Hello world one!"); + } + }; + + // Lambda Runnable + Runnable r2 = () -> System.out.println("Hello world two!"); + + // Run em! + r1.run(); + r2.run(); + + } +} diff --git a/src/main/java/org/java8/lambda2/Gender.java b/src/main/java/org/java8/lambda2/Gender.java new file mode 100644 index 00000000..67544da0 --- /dev/null +++ b/src/main/java/org/java8/lambda2/Gender.java @@ -0,0 +1,6 @@ +package org.java8.lambda2; + +/** + * @author MikeW + */ +public enum Gender { MALE, FEMALE } diff --git a/src/main/java/org/java8/lambda2/Main.java b/src/main/java/org/java8/lambda2/Main.java new file mode 100644 index 00000000..b44dbca4 --- /dev/null +++ b/src/main/java/org/java8/lambda2/Main.java @@ -0,0 +1,17 @@ +package org.java8.lambda2; + +/** + * + * @author MikeW + */ +public class Main { + + public static void main(String[] args) { + + RoboCallTest01.main(args); + RoboCallTest02.main(args); + RoboCallTest03.main(args); + RoboCallTest04.main(args); + + } +} diff --git a/src/main/java/org/java8/lambda2/MyTest.java b/src/main/java/org/java8/lambda2/MyTest.java new file mode 100644 index 00000000..d24be62c --- /dev/null +++ b/src/main/java/org/java8/lambda2/MyTest.java @@ -0,0 +1,8 @@ +package org.java8.lambda2; + +/** + * @author MikeW + */ +public interface MyTest { + public boolean test(T t); +} diff --git a/src/main/java/org/java8/lambda2/Person.java b/src/main/java/org/java8/lambda2/Person.java new file mode 100644 index 00000000..bfc369a1 --- /dev/null +++ b/src/main/java/org/java8/lambda2/Person.java @@ -0,0 +1,219 @@ +package org.java8.lambda2; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Function; + +/** + * @author MikeW + */ +public class Person { + private String givenName; + private String surName; + private int age; + private Gender gender; + private String eMail; + private String phone; + private String address; + + public static class Builder{ + + private String givenName=""; + private String surName=""; + private int age = 0; + private Gender gender = Gender.FEMALE; + private String eMail = ""; + private String phone = ""; + private String address = ""; + + public Person.Builder givenName(String givenName){ + this.givenName = givenName; + return this; + } + + public Person.Builder surName(String surName){ + this.surName = surName; + return this; + } + + public Person.Builder age (int val){ + age = val; + return this; + } + + public Person.Builder gender(Gender val){ + gender = val; + return this; + } + + public Person.Builder email(String val){ + eMail = val; + return this; + } + + public Person.Builder phoneNumber(String val){ + phone = val; + return this; + } + + public Person.Builder address(String val){ + address = val; + return this; + } + + public Person build(){ + return new Person(this); + } + } + + private Person(){ + super(); + } + + private Person(Person.Builder builder){ + givenName = builder.givenName; + surName = builder.surName; + age = builder.age; + gender = builder.gender; + eMail = builder.eMail; + phone = builder.phone; + address = builder.address; + + } + + public String getGivenName(){ + return givenName; + } + + public String getSurName(){ + return surName; + } + + public int getAge(){ + return age; + } + + public Gender getGender(){ + return gender; + } + + public String getEmail(){ + return eMail; + } + + public String getPhone(){ + return phone; + } + + public String getAddress(){ + return address; + } + + public void print(){ + System.out.println( + "\nName: " + givenName + " " + surName + "\n" + + "Age: " + age + "\n" + + "Gender: " + gender + "\n" + + "eMail: " + eMail + "\n" + + "Phone: " + phone + "\n" + + "Address: " + address + "\n" + ); + } + + @Override + public String toString(){ + return "Name: " + givenName + " " + surName + "\n" + "Age: " + age + " Gender: " + gender + "\n" + "eMail: " + eMail + "\n"; + } + + public static List createShortList(){ + List people = new ArrayList<>(); + + people.add( + new Person.Builder() + .givenName("Bob") + .surName("Baker") + .age(21) + .gender(Gender.MALE) + .email("bob.baker@example.com") + .phoneNumber("201-121-4678") + .address("44 4th St, Smallville, KS 12333") + .build() + ); + + people.add( + new Person.Builder() + .givenName("Jane") + .surName("Doe") + .age(25) + .gender(Gender.FEMALE) + .email("jane.doe@example.com") + .phoneNumber("202-123-4678") + .address("33 3rd St, Smallville, KS 12333") + .build() + ); + + people.add( + new Person.Builder() + .givenName("John") + .surName("Doe") + .age(25) + .gender(Gender.MALE) + .email("john.doe@example.com") + .phoneNumber("202-123-4678") + .address("33 3rd St, Smallville, KS 12333") + .build() + ); + + people.add( + new Person.Builder() + .givenName("James") + .surName("Johnson") + .age(45) + .gender(Gender.MALE) + .email("james.johnson@example.com") + .phoneNumber("333-456-1233") + .address("201 2nd St, New York, NY 12111") + .build() + ); + + people.add( + new Person.Builder() + .givenName("Joe") + .surName("Bailey") + .age(67) + .gender(Gender.MALE) + .email("joebob.bailey@example.com") + .phoneNumber("112-111-1111") + .address("111 1st St, Town, CA 11111") + .build() + ); + + people.add( + new Person.Builder() + .givenName("Phil") + .surName("Smith") + .age(55) + .gender(Gender.MALE) + .email("phil.smith@examp;e.com") + .phoneNumber("222-33-1234") + .address("22 2nd St, New Park, CO 222333") + .build() + ); + + people.add( + new Person.Builder() + .givenName("Betty") + .surName("Jones") + .age(85) + .gender(Gender.FEMALE) + .email("betty.jones@example.com") + .phoneNumber("211-33-1234") + .address("22 4th St, New Park, CO 222333") + .build() + ); + + + return people; + } + +} diff --git a/src/main/java/org/java8/lambda2/Predicate.java b/src/main/java/org/java8/lambda2/Predicate.java new file mode 100644 index 00000000..a7f53c17 --- /dev/null +++ b/src/main/java/org/java8/lambda2/Predicate.java @@ -0,0 +1,5 @@ +package org.java8.lambda2; + +public interface Predicate { + public boolean test(T t); +} diff --git a/src/main/java/org/java8/lambda2/RoboCallTest01.java b/src/main/java/org/java8/lambda2/RoboCallTest01.java new file mode 100644 index 00000000..599c7804 --- /dev/null +++ b/src/main/java/org/java8/lambda2/RoboCallTest01.java @@ -0,0 +1,28 @@ +package org.java8.lambda2; + +import java.util.List; + +/** + * + * @author MikeW + */ +public class RoboCallTest01 { + + public static void main(String[] args) { + + List pl = Person.createShortList(); + RoboContactMethods robo = new RoboContactMethods(); + + System.out.println("\n==== Test 01 ===="); + System.out.println("\n=== Calling all Drivers ==="); + robo.callDrivers(pl); + + System.out.println("\n=== Emailing all Draftees ==="); + robo.emailDraftees(pl); + + System.out.println("\n=== Mail all Pilots ==="); + robo.mailPilots(pl); + + } + +} diff --git a/src/main/java/org/java8/lambda2/RoboCallTest02.java b/src/main/java/org/java8/lambda2/RoboCallTest02.java new file mode 100644 index 00000000..d288f104 --- /dev/null +++ b/src/main/java/org/java8/lambda2/RoboCallTest02.java @@ -0,0 +1,28 @@ +package org.java8.lambda2; + +import java.util.List; + +/** + * + * @author MikeW + */ +public class RoboCallTest02 { + + public static void main(String[] args) { + + List pl = Person.createShortList(); + RoboContactMethods2 robo = new RoboContactMethods2(); + + System.out.println("\n==== Test 02 ===="); + System.out.println("\n=== Calling all Drivers ==="); + robo.callDrivers(pl); + + System.out.println("\n=== Emailing all Draftees ==="); + robo.emailDraftees(pl); + + System.out.println("\n=== Mail all Pilots ==="); + robo.mailPilots(pl); + + } + +} diff --git a/src/main/java/org/java8/lambda2/RoboCallTest03.java b/src/main/java/org/java8/lambda2/RoboCallTest03.java new file mode 100644 index 00000000..9df93834 --- /dev/null +++ b/src/main/java/org/java8/lambda2/RoboCallTest03.java @@ -0,0 +1,49 @@ +package org.java8.lambda2; + +import java.util.List; + +/** + * @author MikeW + */ +public class RoboCallTest03 { + + public static void main(String[] args) { + + List pl = Person.createShortList(); + RoboContactAnon robo = new RoboContactAnon(); + + System.out.println("\n==== Test 03 ===="); + System.out.println("\n=== Calling all Drivers ==="); + robo.phoneContacts(pl, + new MyTest(){ + @Override + public boolean test(Person p){ + return p.getAge() >=16; + } + } + ); + + System.out.println("\n=== Emailing all Draftees ==="); + robo.emailContacts(pl, + new MyTest(){ + @Override + public boolean test(Person p){ + return p.getAge() >= 18 && p.getAge() <= 25 && p.getGender() == Gender.MALE; + } + } + ); + + + System.out.println("\n=== Mail all Pilots ==="); + robo.mailContacts(pl, + new MyTest(){ + @Override + public boolean test(Person p){ + return p.getAge() >= 23 && p.getAge() <= 65; + } + } + ); + + + } +} diff --git a/src/main/java/org/java8/lambda2/RoboCallTest04.java b/src/main/java/org/java8/lambda2/RoboCallTest04.java new file mode 100644 index 00000000..e8d09d66 --- /dev/null +++ b/src/main/java/org/java8/lambda2/RoboCallTest04.java @@ -0,0 +1,40 @@ +package org.java8.lambda2; + +import java.util.List; +import java.util.function.Predicate; + +/** + * + * @author MikeW + */ +public class RoboCallTest04 { + + public static void main(String[] args){ + + List pl = Person.createShortList(); + RoboContactLambda robo = new RoboContactLambda(); + + // Predicates + Predicate allDrivers = p -> p.getAge() >= 16; + Predicate allDraftees = p -> p.getAge() >= 18 && p.getAge() <= 25 && p.getGender() == Gender.MALE; + Predicate allPilots = p -> p.getAge() >= 23 && p.getAge() <= 65; + + System.out.println("\n==== Test 04 ===="); + System.out.println("\n=== Calling all Drivers ==="); + robo.phoneContacts(pl, allDrivers); + + System.out.println("\n=== Emailing all Draftees ==="); + robo.emailContacts(pl, allDraftees); + + System.out.println("\n=== Mail all Pilots ==="); + robo.mailContacts(pl, allPilots); + + // Mix and match becomes easy + System.out.println("\n=== Mail all Draftees ==="); + robo.mailContacts(pl, allDraftees); + + System.out.println("\n=== Call all Pilots ==="); + robo.phoneContacts(pl, allPilots); + + } +} diff --git a/src/main/java/org/java8/lambda2/RoboContactAnon.java b/src/main/java/org/java8/lambda2/RoboContactAnon.java new file mode 100644 index 00000000..d4303090 --- /dev/null +++ b/src/main/java/org/java8/lambda2/RoboContactAnon.java @@ -0,0 +1,47 @@ +package org.java8.lambda2; + +import java.util.List; + +/** + * + * @author MikeW + */ +public class RoboContactAnon { + + public void phoneContacts(List pl, MyTest aTest){ + for(Person p:pl){ + if (aTest.test(p)){ + roboCall(p); + } + } + } + + public void emailContacts(List pl, MyTest aTest){ + for(Person p:pl){ + if (aTest.test(p)){ + roboEmail(p); + } + } + } + + public void mailContacts(List pl, MyTest aTest){ + for(Person p:pl){ + if (aTest.test(p)){ + roboMail(p); + } + } + } + + public void roboCall(Person p){ + System.out.println("Calling " + p.getGivenName() + " " + p.getSurName() + " age " + p.getAge() + " at " + p.getPhone()); + } + + public void roboEmail(Person p){ + System.out.println("EMailing " + p.getGivenName() + " " + p.getSurName() + " age " + p.getAge() + " at " + p.getEmail()); + } + + public void roboMail(Person p){ + System.out.println("Mailing " + p.getGivenName() + " " + p.getSurName() + " age " + p.getAge() + " at " + p.getAddress()); + } + +} diff --git a/src/main/java/org/java8/lambda2/RoboContactLambda.java b/src/main/java/org/java8/lambda2/RoboContactLambda.java new file mode 100644 index 00000000..846b156b --- /dev/null +++ b/src/main/java/org/java8/lambda2/RoboContactLambda.java @@ -0,0 +1,47 @@ +package org.java8.lambda2; + +import java.util.List; +import java.util.function.Predicate; + +/** + * + * @author MikeW + */ +public class RoboContactLambda { + public void phoneContacts(List pl, Predicate pred){ + for(Person p:pl){ + if (pred.test(p)){ + roboCall(p); + } + } + } + + public void emailContacts(List pl, Predicate pred){ + for(Person p:pl){ + if (pred.test(p)){ + roboEmail(p); + } + } + } + + public void mailContacts(List pl, Predicate pred){ + for(Person p:pl){ + if (pred.test(p)){ + roboMail(p); + } + } + } + + public void roboCall(Person p){ + System.out.println("Calling " + p.getGivenName() + " " + p.getSurName() + " age " + p.getAge() + " at " + p.getPhone()); + } + + public void roboEmail(Person p){ + System.out.println("EMailing " + p.getGivenName() + " " + p.getSurName() + " age " + p.getAge() + " at " + p.getEmail()); + } + + public void roboMail(Person p){ + System.out.println("Mailing " + p.getGivenName() + " " + p.getSurName() + " age " + p.getAge() + " at " + p.getAddress()); + } + +} diff --git a/src/main/java/org/java8/lambda2/RoboContactMethods.java b/src/main/java/org/java8/lambda2/RoboContactMethods.java new file mode 100644 index 00000000..880c925f --- /dev/null +++ b/src/main/java/org/java8/lambda2/RoboContactMethods.java @@ -0,0 +1,53 @@ +package org.java8.lambda2; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * + * @author MikeW + */ +public class RoboContactMethods { + + public void callDrivers(List pl){ + for(Person p:pl){ + if (p.getAge() >= 16){ + roboCall(p); + } + } + + //exemplo com lambda + List persons = pl.stream().filter(p -> p.getAge() >= 16).collect(Collectors.toList()); + persons.forEach(p -> roboCall(p)); + } + + public void emailDraftees(List pl){ + for(Person p:pl){ + if (p.getAge() >= 18 && p.getAge() <= 25 && p.getGender() == Gender.MALE){ + roboEmail(p); + } + } + } + + public void mailPilots(List pl){ + for(Person p:pl){ + if (p.getAge() >= 23 && p.getAge() <= 65){ + roboMail(p); + } + } + } + + + public void roboCall(Person p){ + System.out.println("Calling " + p.getGivenName() + " " + p.getSurName() + " age " + p.getAge() + " at " + p.getPhone()); + } + + public void roboEmail(Person p){ + System.out.println("EMailing " + p.getGivenName() + " " + p.getSurName() + " age " + p.getAge() + " at " + p.getEmail()); + } + + public void roboMail(Person p){ + System.out.println("Mailing " + p.getGivenName() + " " + p.getSurName() + " age " + p.getAge() + " at " + p.getAddress()); + } + +} diff --git a/src/main/java/org/java8/lambda2/RoboContactMethods2.java b/src/main/java/org/java8/lambda2/RoboContactMethods2.java new file mode 100644 index 00000000..832b5ba2 --- /dev/null +++ b/src/main/java/org/java8/lambda2/RoboContactMethods2.java @@ -0,0 +1,59 @@ +package org.java8.lambda2; + +import java.util.List; + +/** + * + * @author MikeW + */ +public class RoboContactMethods2 { + + public void callDrivers(List pl){ + for(Person p:pl){ + if (isDriver(p)){ + roboCall(p); + } + } + } + + public void emailDraftees(List pl){ + for(Person p:pl){ + if (isDraftee(p)){ + roboEmail(p); + } + } + } + + public void mailPilots(List pl){ + for(Person p:pl){ + if (isPilot(p)){ + roboMail(p); + } + } + } + + public boolean isDriver(Person p){ + return p.getAge() >= 16; + } + + public boolean isDraftee(Person p){ + return p.getAge() >= 18 && p.getAge() <= 25 && p.getGender() == Gender.MALE; + } + + public boolean isPilot(Person p){ + return p.getAge() >= 23 && p.getAge() <= 65; + } + + public void roboCall(Person p){ + System.out.println("Calling " + p.getGivenName() + " " + p.getSurName() + " age " + p.getAge() + " at " + p.getPhone()); + } + + public void roboEmail(Person p){ + System.out.println("EMailing " + p.getGivenName() + " " + p.getSurName() + " age " + p.getAge() + " at " + p.getEmail()); + } + + public void roboMail(Person p){ + System.out.println("Mailing " + p.getGivenName() + " " + p.getSurName() + " age " + p.getAge() + " at " + p.getAddress()); + } + +} diff --git a/src/main/java/org/java8/lambda3/Gender.java b/src/main/java/org/java8/lambda3/Gender.java new file mode 100644 index 00000000..4ce6a667 --- /dev/null +++ b/src/main/java/org/java8/lambda3/Gender.java @@ -0,0 +1,6 @@ +package org.java8.lambda3; + +/** + * @author MikeW + */ +public enum Gender { MALE, FEMALE } diff --git a/src/main/java/org/java8/lambda3/Main.java b/src/main/java/org/java8/lambda3/Main.java new file mode 100644 index 00000000..7e84668c --- /dev/null +++ b/src/main/java/org/java8/lambda3/Main.java @@ -0,0 +1,14 @@ +package org.java8.lambda3; + +/** + * @author MikeW + */ +public class Main { + + public static void main(String[] args) { + + NameTestOld.main(args); + NameTestNew.main(args); + + } +} diff --git a/src/main/java/org/java8/lambda3/NameTestNew.java b/src/main/java/org/java8/lambda3/NameTestNew.java new file mode 100644 index 00000000..50f8f816 --- /dev/null +++ b/src/main/java/org/java8/lambda3/NameTestNew.java @@ -0,0 +1,61 @@ +package org.java8.lambda3; + +import java.util.List; +import java.util.function.Function; + +/** + * @author MikeW + */ +public class NameTestNew { + + public static void main(String[] args) { + + System.out.println("\n==== NameTestNew ==="); + + List list1 = Person.createShortList(); + + // Print Custom First Name and e-mail + System.out.println("===Custom List==="); + for (Person person:list1){ + System.out.println( + person.printCustom(p -> "Name: " + p.getGivenName() + " EMail: " + p.getEmail()) + ); + } + + + // Define Western and Eastern Lambdas + + Function westernStyle = p -> { + return "\nName: " + p.getGivenName() + " " + p.getSurName() + "\n" + + "Age: " + p.getAge() + " " + "Gender: " + p.getGender() + "\n" + + "EMail: " + p.getEmail() + "\n" + + "Phone: " + p.getPhone() + "\n" + + "Address: " + p.getAddress(); + }; + + Function easternStyle = p -> "\nName: " + p.getSurName() + " " + + p.getGivenName() + "\n" + "Age: " + p.getAge() + " " + + "Gender: " + p.getGender() + "\n" + + "EMail: " + p.getEmail() + "\n" + + "Phone: " + p.getPhone() + "\n" + + "Address: " + p.getAddress(); + + // Print Western List + System.out.println("\n===Western List==="); + for (Person person:list1){ + System.out.println( + person.printCustom(westernStyle) + ); + } + + // Print Eastern List + System.out.println("\n===Eastern List==="); + for (Person person:list1){ + System.out.println( + person.printCustom(easternStyle) + ); + } + + + } +} diff --git a/src/main/java/org/java8/lambda3/NameTestOld.java b/src/main/java/org/java8/lambda3/NameTestOld.java new file mode 100644 index 00000000..895baa47 --- /dev/null +++ b/src/main/java/org/java8/lambda3/NameTestOld.java @@ -0,0 +1,31 @@ +package org.java8.lambda3; + +import java.util.List; +import java.util.function.Function; + +/** + * @author MikeW + */ +public class NameTestOld { + + public static void main(String[] args) { + + System.out.println("\n==== NameTestOld ==="); + + List list1 = Person.createShortList(); + + // Print Names Western + System.out.println("\n===Print Western Names==="); + for (Person person:list1){ + person.printWesternName(); + } + + // Print Names Eastern + System.out.println("\n===Print Eastern Names==="); + for (Person person:list1){ + person.printEasternName(); + } + + } + +} diff --git a/src/main/java/org/java8/lambda3/Person.java b/src/main/java/org/java8/lambda3/Person.java new file mode 100644 index 00000000..c3315b3b --- /dev/null +++ b/src/main/java/org/java8/lambda3/Person.java @@ -0,0 +1,245 @@ +package org.java8.lambda3; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Function; + +/** + * @author MikeW + */ +public class Person { + private String givenName; + private String surName; + private int age; + private Gender gender; + private String eMail; + private String phone; + private String address; + + public static class Builder{ + + private String givenName=""; + private String surName=""; + private int age = 0; + private Gender gender = Gender.FEMALE; + private String eMail = ""; + private String phone = ""; + private String address = ""; + + public Person.Builder givenName(String givenName){ + this.givenName = givenName; + return this; + } + + public Person.Builder surName(String surName){ + this.surName = surName; + return this; + } + + public Person.Builder age (int val){ + age = val; + return this; + } + + public Person.Builder gender(Gender val){ + gender = val; + return this; + } + + public Person.Builder email(String val){ + eMail = val; + return this; + } + + public Person.Builder phoneNumber(String val){ + phone = val; + return this; + } + + public Person.Builder address(String val){ + address = val; + return this; + } + + public Person build(){ + return new Person(this); + } + } + + private Person(){ + super(); + } + + private Person(Person.Builder builder){ + givenName = builder.givenName; + surName = builder.surName; + age = builder.age; + gender = builder.gender; + eMail = builder.eMail; + phone = builder.phone; + address = builder.address; + + } + + public String getGivenName(){ + return givenName; + } + + public String getSurName(){ + return surName; + } + + public int getAge(){ + return age; + } + + public Gender getGender(){ + return gender; + } + + public String getEmail(){ + return eMail; + } + + public String getPhone(){ + return phone; + } + + public String getAddress(){ + return address; + } + + public void print(){ + System.out.println( + "\nName: " + givenName + " " + surName + "\n" + + "Age: " + age + "\n" + + "Gender: " + gender + "\n" + + "eMail: " + eMail + "\n" + + "Phone: " + phone + "\n" + + "Address: " + address + "\n" + ); + } + + public String printCustom(Function f){ + return f.apply(this); + } + + + public void printWesternName(){ + + System.out.println("\nName: " + this.getGivenName() + " " + this.getSurName() + "\n" + + "Age: " + this.getAge() + " " + "Gender: " + this.getGender() + "\n" + + "EMail: " + this.getEmail() + "\n" + + "Phone: " + this.getPhone() + "\n" + + "Address: " + this.getAddress()); + } + + + public void printEasternName(){ + + System.out.println("\nName: " + this.getSurName() + " " + this.getGivenName() + "\n" + + "Age: " + this.getAge() + " " + "Gender: " + this.getGender() + "\n" + + "EMail: " + this.getEmail() + "\n" + + "Phone: " + this.getPhone() + "\n" + + "Address: " + this.getAddress()); + } + + + + @Override + public String toString(){ + return "Name: " + givenName + " " + surName + "\n" + "Age: " + age + " Gender: " + gender + "\n" + "eMail: " + eMail + "\n"; + } + + public static List createShortList(){ + List people = new ArrayList<>(); + + people.add( + new Person.Builder() + .givenName("Bob") + .surName("Baker") + .age(21) + .gender(Gender.MALE) + .email("bob.baker@example.com") + .phoneNumber("201-121-4678") + .address("44 4th St, Smallville, KS 12333") + .build() + ); + + people.add( + new Person.Builder() + .givenName("Jane") + .surName("Doe") + .age(25) + .gender(Gender.FEMALE) + .email("jane.doe@example.com") + .phoneNumber("202-123-4678") + .address("33 3rd St, Smallville, KS 12333") + .build() + ); + + people.add( + new Person.Builder() + .givenName("John") + .surName("Doe") + .age(25) + .gender(Gender.MALE) + .email("john.doe@example.com") + .phoneNumber("202-123-4678") + .address("33 3rd St, Smallville, KS 12333") + .build() + ); + + people.add( + new Person.Builder() + .givenName("James") + .surName("Johnson") + .age(45) + .gender(Gender.MALE) + .email("james.johnson@example.com") + .phoneNumber("333-456-1233") + .address("201 2nd St, New York, NY 12111") + .build() + ); + + people.add( + new Person.Builder() + .givenName("Joe") + .surName("Bailey") + .age(67) + .gender(Gender.MALE) + .email("joebob.bailey@example.com") + .phoneNumber("112-111-1111") + .address("111 1st St, Town, CA 11111") + .build() + ); + + people.add( + new Person.Builder() + .givenName("Phil") + .surName("Smith") + .age(55) + .gender(Gender.MALE) + .email("phil.smith@examp;e.com") + .phoneNumber("222-33-1234") + .address("22 2nd St, New Park, CO 222333") + .build() + ); + + people.add( + new Person.Builder() + .givenName("Betty") + .surName("Jones") + .age(85) + .gender(Gender.FEMALE) + .email("betty.jones@example.com") + .phoneNumber("211-33-1234") + .address("22 4th St, New Park, CO 222333") + .build() + ); + + + return people; + } + +} From 143c29764f1e3ea0c3c2f44a6722efa30112d29e Mon Sep 17 00:00:00 2001 From: DENIS APOLINARIO DA SILVA Date: Thu, 13 Apr 2017 16:51:45 -0300 Subject: [PATCH 2/7] Testes --- eclipse.ini | 44 +++++++++++++++++++++++++ src/main/java/TesteSolution.java | 56 ++++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 eclipse.ini create mode 100644 src/main/java/TesteSolution.java diff --git a/eclipse.ini b/eclipse.ini new file mode 100644 index 00000000..0a13c703 --- /dev/null +++ b/eclipse.ini @@ -0,0 +1,44 @@ +-startup +plugins/org.eclipse.equinox.launcher_1.3.201.v20161025-1711.jar +--launcher.library +plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.401.v20161122-1740 +-vm +C:/ambienteDesenv/programas/java/jdk1.8.0_121/bin/javaw.exe +-product +org.eclipse.epp.package.jee.product +--launcher.defaultAction +openFile +-showsplash +org.eclipse.platform +--launcher.defaultAction +openFile +--launcher.appendVmargs +-vmargs +-Xverify:none +-Dosgi.requiredJavaVersion=1.8 +-Dosgi.locking=none +-XX:+UseStringDeduplication +-Xms512m +-Xmx1024m +-server +-Dsun.lang.ClassLoader.allowArraySyntax=true + +#-XX:MetaspaceSize=100m +#-XX:MaxMetaspaceSize=256m +#-XX:MinMetaspaceFreeRatio=0 +#-XX:MaxMetaspaceFreeRatio=100 +#-XX:ReservedCodeCacheSize=350M +#-XX:+AlwaysPreTouch + +#-XX:MetaspaceSize=100M to increase the initial size of Metaspaces (the default is 16M); +#-XX:InitialBootClassLoaderMetaspaceSize=32M to increase the boot class loader Metaspace; +#-XX:MinMetaspaceFreeRatio=50 to make Metaspaces grow more agressively; +#-XX:MaxMetaspaceFreeRatio=80 to reduce the chance of Metaspaces shrinking; +#-XX:MinMetaspaceExpansion=4M the minumum size by which a Metaspace is exanded; +#-XX:MaxMetaspaceExpansion=16M the maximum size to expand a Metaspace by without Full GC. +##-XX:+UseParallelGC +##-XX:+UseG1GC +#-XX:MinMetaspaceFreeRatio +#-XX:MaxMetaspaceFreeRatio +#-XX:PermSize=256m +#-XX:MaxPermSize=256m diff --git a/src/main/java/TesteSolution.java b/src/main/java/TesteSolution.java new file mode 100644 index 00000000..49f2d040 --- /dev/null +++ b/src/main/java/TesteSolution.java @@ -0,0 +1,56 @@ +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Scanner; + +public class TesteSolution { + public static void main(String args[]) throws Exception { + /* Enter your code here. Read input from STDIN. Print output to STDOUT */ + Scanner in = new Scanner(System.in); + int N = in.nextInt(); + if (N == 0) { + return; + } + Map> composicoes = new HashMap>(N); + + int contador = 1; + while (contador <= N) { + if (!in.hasNext()) { + return; + } + String composicao = in.next(); + composicoes.put(contador, Arrays.asList(composicao.split(""))); + + contador++; + } + + + contador = 1; + int resultado = 1; + int resultaodFinal =0; + + + List list = composicoes.get(contador); + contador++; + for (String letra : list) { + System.out.println("letra " + contador + "-" + letra); + while (contador <= composicoes.size()) { + if (contemValor(letra, composicoes.get(contador))) { + resultado ++; + } + contador++; + } + if(resultado == N){ + resultaodFinal ++; + } + contador =2; + resultado = 1; + } + System.out.println(resultaodFinal); + } + + private static boolean contemValor(String letra, List listas) { + return listas.contains(letra); + } +} From 71949c4fc5790663c93e2e94a6bea935d906a59f Mon Sep 17 00:00:00 2001 From: DENIS APOLINARIO DA SILVA Date: Wed, 19 Apr 2017 18:03:48 -0300 Subject: [PATCH 3/7] exemplos java 8 --- src/main/java/TesteSolution.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/TesteSolution.java b/src/main/java/TesteSolution.java index 49f2d040..1771e221 100644 --- a/src/main/java/TesteSolution.java +++ b/src/main/java/TesteSolution.java @@ -5,6 +5,9 @@ import java.util.Scanner; public class TesteSolution { + + + public static void main(String args[]) throws Exception { /* Enter your code here. Read input from STDIN. Print output to STDOUT */ Scanner in = new Scanner(System.in); From c0ad2c4815dee7c303b8d22721bc304b5fc0a7a0 Mon Sep 17 00:00:00 2001 From: DENIS APOLINARIO DA SILVA Date: Thu, 20 Apr 2017 12:16:08 -0300 Subject: [PATCH 4/7] teste java8 --- src/main/java/Java8ConversionExamples.java | 65 ++++++++++++++++++++++ src/main/java/Teste2.java | 22 ++++++++ 2 files changed, 87 insertions(+) create mode 100644 src/main/java/Java8ConversionExamples.java create mode 100644 src/main/java/Teste2.java diff --git a/src/main/java/Java8ConversionExamples.java b/src/main/java/Java8ConversionExamples.java new file mode 100644 index 00000000..14acc10c --- /dev/null +++ b/src/main/java/Java8ConversionExamples.java @@ -0,0 +1,65 @@ +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class Java8ConversionExamples { + + public static void main(String[] args) throws java.lang.Exception { + // 1 Convert `List` to `List` + List l1 = Arrays.asList("1", "2", "3"); + List r1 = l1.stream().map(Integer::parseInt).collect(Collectors.toList()); + System.out.println("1: " + r1); + + // 2 Convert `List` to `int[]` + int[] r2 = l1.stream().mapToInt(Integer::parseInt).toArray(); + System.out.println("2: " + Arrays.toString(r2)); + + // 3 Convert `String[]` to `List` + String[] a1 = {"4", "5", "6"}; + List r3 = Stream.of(a1).map(Integer::parseInt).collect(Collectors.toList()); + System.out.println("3: " + r3); + + // 4 Convert `String[]` to `int[]` + int[] r4 = Stream.of(a1).mapToInt(Integer::parseInt).toArray(); + System.out.println("4: " + Arrays.toString(r4)); + + // 5 Convert `String[]` to `List` + List r5 = Stream.of(a1).map(Double::parseDouble).collect(Collectors.toList()); + System.out.println("5: " + r5); + + // 6 (bonus) Convert `int[]` to `String[]` + int[] a2 = {7, 8, 9}; + String[] r6 = Arrays.stream(a2).mapToObj(Integer::toString).toArray(String[]::new); + System.out.println("6: " + Arrays.toString(r6)); + + + // stream to object array in Java + Stream currencies = Stream.of("INR", "USD", "GBP", "EUR", "JPY"); + Object[] objectArray = currencies.toArray(); + System.out.println("Stream to object array in Java:"); + System.out.println(Arrays.toString(objectArray)); + + // via - Stream.toArray() and lambda expression + Integer[] primes = {2, 3, 5, 7, 11}; + List listOfInts = new ArrayList(Arrays.asList(primes)); + Integer[] array = listOfInts.stream().toArray(size -> new Integer[size]); + System.out.println("Stream to Integer array using lambda expression in Java:"); + System.out.println(Arrays.toString(array)); + + // via - method reference + array = listOfInts.stream().toArray(Integer[]::new); + System.out.println("Stream to Integer array using method reference in Java:"); + System.out.println(Arrays.toString(array)); + + // via arraylist + List list = listOfInts.stream().collect(Collectors.toCollection(ArrayList::new)); + Integer[] iArray = list.toArray(new Integer[list.size()]); + System.out.println("Stream to Integer array via ArrayList in Java:"); + System.out.println(list); + + + + } +} diff --git a/src/main/java/Teste2.java b/src/main/java/Teste2.java new file mode 100644 index 00000000..1fc25632 --- /dev/null +++ b/src/main/java/Teste2.java @@ -0,0 +1,22 @@ +import java.util.Arrays; +import java.util.Scanner; + +/** + * Somar arrays com java 8 + * + */ +public class Teste2 { + public static void main(String[] args) { + /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */ + Scanner in = new Scanner(System.in); + int size = in.nextInt(); + int[] array = new int[size]; + + for(int i=0 ; i < size ; i++ ){ + array[i] = in.nextInt(); + } + + System.out.println(Arrays.stream(array).sum()); + + } +} From 23ac0cced2684c6cf6c79d326c4faeda24b41871 Mon Sep 17 00:00:00 2001 From: denis Date: Sat, 22 Apr 2017 12:37:00 -0300 Subject: [PATCH 5/7] exercicios --- src/main/java/BinarySearch.java | 36 ++ src/main/java/BubbleSort.java | 46 ++ src/main/java/Solucao.java | 11 + src/main/java/TesteSolutionString.java | 136 ++++++ src/main/java/org/java8/BuscaArquivo.java | 21 + .../org/java8/calculadora/Calculadora.java | 17 + .../java/org/java8/calculadora/Colecoes.java | 42 ++ .../java/org/java8/calculadora/Lambda01.java | 21 + .../org/java8/calculadora/OperadorDouble.java | 8 + .../java/org/java8/calculadora/Pessoa.java | 38 ++ src/main/resources/nomes.txt | 423 ++++++++++++++++++ 11 files changed, 799 insertions(+) create mode 100644 src/main/java/BinarySearch.java create mode 100644 src/main/java/BubbleSort.java create mode 100644 src/main/java/Solucao.java create mode 100644 src/main/java/TesteSolutionString.java create mode 100644 src/main/java/org/java8/BuscaArquivo.java create mode 100644 src/main/java/org/java8/calculadora/Calculadora.java create mode 100644 src/main/java/org/java8/calculadora/Colecoes.java create mode 100644 src/main/java/org/java8/calculadora/Lambda01.java create mode 100644 src/main/java/org/java8/calculadora/OperadorDouble.java create mode 100644 src/main/java/org/java8/calculadora/Pessoa.java create mode 100644 src/main/resources/nomes.txt diff --git a/src/main/java/BinarySearch.java b/src/main/java/BinarySearch.java new file mode 100644 index 00000000..45679aff --- /dev/null +++ b/src/main/java/BinarySearch.java @@ -0,0 +1,36 @@ + +/** + * Exercicio busca binaria. + * + * @author denis + * http://www.java2novice.com/java-search-algorithms/binary-search-recursion/ + * + */ +public class BinarySearch { + public static void main(String[] args) { + + int[] array = {1, 3, 4, 6, 7, 8, 10, 23, 28, 39, 40, 45, 49, 50, 51, 53, 54, 58, 59, 60}; + int key = 54; + int inicio = 0; + int fim = array.length; + int posicaoKey = buscaBinaria(array, inicio, fim, key); + System.out.println("Posicao da busca: " + posicaoKey); + } + + private static int buscaBinaria(int[] array, int inicio, int fim, int key) { + + if (inicio < fim) { + int meio = inicio + (fim - inicio) / 2; + + if (key < array[meio]) { + return buscaBinaria(array, inicio, meio, key); + + } else if (key > array[meio]) { + return buscaBinaria(array, meio+1, fim, key); + } else { + return meio; + } + } + return -(inicio + 1); + } +} diff --git a/src/main/java/BubbleSort.java b/src/main/java/BubbleSort.java new file mode 100644 index 00000000..21a63cb7 --- /dev/null +++ b/src/main/java/BubbleSort.java @@ -0,0 +1,46 @@ +import java.util.Arrays; +import java.util.stream.IntStream; + +/** + * Exercicio BubbleSort. + * + * @author denis + * http://www.java2novice.com/java-sorting-algorithms/bubble-sort/ + * + */ +public class BubbleSort { + + public static void main(String[] args) { + int[] array = {4, 2, 9, 6, 23, 12, 34, 0, 1, 5, 4, 12, 55, 88, 77, 99, 76}; + + sort(array); + System.out.println(Arrays.toString(array)); + } + + private static int sort(int[] array) { + int tamanho = array.length; + int temporario; + + for (int m = tamanho; m >= 0; m--) { + for (int i = 0; i < tamanho - 1; i++) { + temporario = i + 1; + if (array[i] > array[temporario]) { + swapNumbers(i, temporario, array); + } + } + + System.out.println(Arrays.toString(array)); + // Arrays.asList(array).stream().forEach(System.out::println); + // IntStream.of(array).forEach(System.out::println); + // Arrays.stream(array).forEach(num -> System.out.println(num)); + } + + return 0; + } + + private static void swapNumbers(int i, int temporario, int[] array) { + int temp = array[i]; + array[i] = array[temporario]; + array[temporario] = temp; + } +} diff --git a/src/main/java/Solucao.java b/src/main/java/Solucao.java new file mode 100644 index 00000000..90d541ee --- /dev/null +++ b/src/main/java/Solucao.java @@ -0,0 +1,11 @@ +import java.util.Scanner; + +public class Solucao { + public static void main(String[] args) { + Scanner in = new Scanner(System.in); + int N = in.nextInt(); + if (N == 0) { + return; + } + } +} diff --git a/src/main/java/TesteSolutionString.java b/src/main/java/TesteSolutionString.java new file mode 100644 index 00000000..a9c10b86 --- /dev/null +++ b/src/main/java/TesteSolutionString.java @@ -0,0 +1,136 @@ +import java.util.Arrays; +import java.util.List; +import java.util.Scanner; +import java.util.stream.Collectors; + +/** + * HackerRank - Super Reduced String Enunciado no final + * 16/04/2017 + * + * Entradas + * Input:lrfkqyuqfjjfquyqkfrlkxyqvnrtyssytrnvqyxkfrzrmzlygffgylzmrzrfveulqfpdbhhbdpfqluevlqdqrrcrwddwrcrrqdql + * Output:Empty String + * + * Input:aaabccddd + * Output:abc + * + * Input:baab + * Output:Empty String + * + * @author denis + */ +public class TesteSolutionString { + + public static void main(String[] args) { + Scanner in = new Scanner(System.in); + String s = in.next(); + + if(s == null){ + return; + } + String[] strings = s.split(""); + + if(strings.length == 0 || strings.length >100){ + return; + } + //int contador = 0; + + int i = 0; + boolean reduziu = false; + while (i <= strings.length) { + if ((i + 1) >= strings.length) { + if (reduziu) { + List listas = Arrays.asList(strings).stream().filter(st -> st != null).collect(Collectors.toList()); + //System.out.println(contador + " Intermediaria: " + String.join("", listas)); + //System.out.println(contador + " tamanho lista: " + listas.size()); + strings = (String[]) listas.toArray(new String[listas.size()]); + //System.out.println(contador + " strings lenght: " + strings.length); + i = 0; + reduziu = false; + } else { + break; + } + } + if(strings.length == 0){ + break; + } + if (strings[i].equals(strings[i + 1])) { + strings[i] = null; + strings[i + 1] = null; + i = i + 2; + reduziu = true; + } else { + i++; + } + //contador++; + } + List listas = Arrays.asList(strings).stream().filter(st -> st != null).collect(Collectors.toList()); + + if (listas.isEmpty()) { + System.out.println("Empty String"); + } else { + System.out.println(String.join("", listas)); + } + } + +} +/** + * Steve has a string, , consisting of lowercase English alphabetic letters. In one operation, he can delete any pair of adjacent letters with same value. For example, string "aabcc" would become either "aab" or "bcc" after operation. + +Steve wants to reduce as much as possible. To do this, he will repeat the above operation as many times as it can be performed. Help Steve out by finding and printing 's non-reducible form! + +Note: If the final string is empty, print Empty String . + +Input Format + +A single string, . + +Constraints + +Output Format + +If the final string is empty, print Empty String; otherwise, print the final non-reducible string. + +Sample Input 0 + +aaabccddd +Sample Output 0 + +abd +Sample Case 0 + +Steve can perform the following sequence of operations to get the final string: + +aaabccddd → abccddd +abccddd → abddd +abddd → abd +Thus, we print abd. + +Sample Input 1 + +baab +Sample Output 1 + +Empty String +Explanation 1 + +Steve can perform the following sequence of operations to get the final string: + +baab → bb +bb → Empty String +Thus, we print Empty String. + +Sample Input 2 + +aa +Sample Output 2 + +Empty String +Explanation 2 + +Steve can perform the following sequence of operations to get the final string: + +aa → Empty String +Thus, we print Empty String. + * + */ diff --git a/src/main/java/org/java8/BuscaArquivo.java b/src/main/java/org/java8/BuscaArquivo.java new file mode 100644 index 00000000..e38bd7a0 --- /dev/null +++ b/src/main/java/org/java8/BuscaArquivo.java @@ -0,0 +1,21 @@ +package org.java8; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; + +/** + * Exemplo do video https://www.youtube.com/watch?v=KWGvYsfPCyg + *Teste leitura de arquivo labda, com stream filter + */ +public class BuscaArquivo { + + public static void main(String[] args) throws IOException { + String palavra = "Silva"; + String arquivo = "src/main/resources/nomes.txt"; + + long count = Files.lines(Paths.get(arquivo)).filter(linha -> linha.contains(palavra)).count(); + System.out.println("Quantidade de palavras: " + count); + + } +} diff --git a/src/main/java/org/java8/calculadora/Calculadora.java b/src/main/java/org/java8/calculadora/Calculadora.java new file mode 100644 index 00000000..def33eca --- /dev/null +++ b/src/main/java/org/java8/calculadora/Calculadora.java @@ -0,0 +1,17 @@ +package org.java8.calculadora; + +import java.util.function.BinaryOperator; + +public class Calculadora { + + public static Double calcular(Double d1, Double d2, OperadorDouble op){ + return op.calcular(d1, d2); + } + + + public static T calculars(T t1, T t2, BinaryOperator funcao){ + return funcao.apply(t1,t2); + + } + +} diff --git a/src/main/java/org/java8/calculadora/Colecoes.java b/src/main/java/org/java8/calculadora/Colecoes.java new file mode 100644 index 00000000..f7ab5975 --- /dev/null +++ b/src/main/java/org/java8/calculadora/Colecoes.java @@ -0,0 +1,42 @@ +package org.java8.calculadora; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class Colecoes { + + public static void main(String[] args) { + List pessoas = umMetodoQueRetornaPessoas(); + + Stream streamPessoa = pessoas.stream(); + Long count = pessoas.stream().filter(pessoa -> pessoa.getSexo().equals("F")).count(); + System.out.println(count); + + + + List nomes = pessoas.stream() + .filter(p -> p.getSexo().equals("F")) + .map(p -> p.getNome().toUpperCase()) + .collect(Collectors.toList()); + + System.out.println(nomes); + + } + + private static List umMetodoQueRetornaPessoas() { + List pessoas = new ArrayList(); + pessoas.add(new Pessoa("Denis",10 ,"M")); + pessoas.add(new Pessoa("Denis2",140 ,"M")); + pessoas.add(new Pessoa("Denis3",40 ,"M")); + pessoas.add(new Pessoa("Deni4s",50 ,"F")); + pessoas.add(new Pessoa("Denis5",20 ,"F")); + pessoas.add(new Pessoa("Deni6s",30 ,"F")); + pessoas.add(new Pessoa("Deni7s",20 ,"M")); + pessoas.add(new Pessoa("Deni8s",40 ,"F")); + + return pessoas; + } + +} diff --git a/src/main/java/org/java8/calculadora/Lambda01.java b/src/main/java/org/java8/calculadora/Lambda01.java new file mode 100644 index 00000000..37113170 --- /dev/null +++ b/src/main/java/org/java8/calculadora/Lambda01.java @@ -0,0 +1,21 @@ +package org.java8.calculadora; + +import java.math.BigDecimal; +import java.util.function.BinaryOperator; + +public class Lambda01 { + + public static void main(String[] args) { + Double multiplicar = Calculadora.calcular(40d, 2d, (a,b) -> a*b ); + System.out.println(multiplicar); + + + + BigDecimal calculars = Calculadora.calculars(BigDecimal.valueOf(10), BigDecimal.valueOf(3), (a,b) -> a.add( b )); + + System.out.println(calculars); + + + } + +} diff --git a/src/main/java/org/java8/calculadora/OperadorDouble.java b/src/main/java/org/java8/calculadora/OperadorDouble.java new file mode 100644 index 00000000..09033ab4 --- /dev/null +++ b/src/main/java/org/java8/calculadora/OperadorDouble.java @@ -0,0 +1,8 @@ +package org.java8.calculadora; + +@FunctionalInterface +public interface OperadorDouble { + + + public Double calcular(double d1, double d2); +} diff --git a/src/main/java/org/java8/calculadora/Pessoa.java b/src/main/java/org/java8/calculadora/Pessoa.java new file mode 100644 index 00000000..4b29caeb --- /dev/null +++ b/src/main/java/org/java8/calculadora/Pessoa.java @@ -0,0 +1,38 @@ +package org.java8.calculadora; + +public class Pessoa { + + + + private String nome; + private Integer idade; + private String sexo; + + + public Pessoa(String nome, Integer idade, String sexo) { + super(); + this.nome = nome; + this.idade = idade; + this.sexo = sexo; + } + public String getNome() { + return nome; + } + public void setNome(String nome) { + this.nome = nome; + } + public Integer getIdade() { + return idade; + } + public void setIdade(Integer idade) { + this.idade = idade; + } + public String getSexo() { + return sexo; + } + public void setSexo(String sexo) { + this.sexo = sexo; + } + + +} diff --git a/src/main/resources/nomes.txt b/src/main/resources/nomes.txt new file mode 100644 index 00000000..6db29a52 --- /dev/null +++ b/src/main/resources/nomes.txt @@ -0,0 +1,423 @@ +Luciane Gonçalves +Thainara Gonçalves Alexandre +Juliana Borges Costa +Jeanice Larissa Ricobom +Roseli Justita Pimenta da Costa +Glauciane Aparecida Christofoletti Braghin +Taís Pereira da Silva +Camila Claro Furtile da Silva +Claudinei da Silva +Martha Proença da Luz Cruz +Elaine Aparecida de Souza +Solange Moreno +Lucimar Fernandes Silva +Cristiane Borges de Araújo +Ixulalu Waurá +Edna Aparecida Ferreira +Karine Aparecida da Silva Figueiredo +Gilsineia Salviana Da Silva +DARLENE SOARES LIMA +GILDEMIRA MORAIS LIMA +Maria Antoninha Svernini +Maria Aparecida Jardim +Elisabete Antunes Agripino +Sueli Carneiro Bastos Teixeira +Lucia dos Santos Oliveira +Vanusa dos Santos Oliveira +Maria do Socorro Alves de Lira +ELEITE DOS SANTOS NEVES +MARIA ELIZABETE SANTOS SILVA +MARIA ODELICE DE LIMA MATOS +Pamela Francine Pfiffer Baiochi +Alexsandra Alves Correa +Geovanna Correa de Amorim +Maria Carolina de Souza Maia +Ana Cristina de Souza Diniz +Neiva Alfaia Correa +Kellis Pires Oliveira +Jane Alves Correa +Vanuza Regina de Andrade +Ilce Maria de Souza Pires +Daiana Maria Campos Mar +Eliana Maria Dias Silva +Ana Célia de Lima da SIlva +Francisca Fernandes da Silva +Sirley Nascimento da Silva +Marilete Ribeiro de Souza +Henthimy Pereira da Silva +Henrique Prestes Maciel +Douglas Ribeiro Maciel +Maria do Socorro Freire Laranjeira +Maria de Fátima Andrade da Silva +Renaldo Andrade da Silva +Aldaniza Barbosa da Fonseca +Aberlado Barbosa Correa Filho +Camila Fonseca de Sousa +Marta Ferreira da Silva +Angelita Ferreira da SIlva +Marlene do Rosario da Rosa Pereira +Leila Maria Povoa Bossoni +Fabiana Macieski +Marcos Antonio Alves Pontes +Sônia da Silva Vilacio +Samela Lorena Vilácio Marteninghi +Suelen Vilacio Pereira +Maria de Nazaré Lima +Jane Silva de Carvalho +Maria do Carmo da Silva Bulcão +Maria do Carmo Vieira do Nascimento +Fabiane da Silva Vasconcelos +Maria Lizabete Menezes de Freitas +Tânia Pereira da Silva +Lelinha Ferreira +Isabel Pereira da Silva +Maria de Fátima Tavares da Silva +Zurma Silva dos Santos +Anazilda Tavares da Silva +Vanneska Karine Lins Brandão +Sheila Magalhães Oliveira +Gleidson Morais da Silva +Fabiana de Lima Batista +Márcia Pereira da Cunha Cruz +Karina Corrêa Gondim Abreu +Angela Mieko Mada Mendonça +Josinês Machado +Nelci Rosilene Aparecida Carolino Cesco +Andréssia Carneiro da Silva +Ana Rita de Almeida Silva de Lima +Maria Nailza de Lima +Patrícia de Almeida Silva +Isabel Izidoro Cabral Gonçalves +Valdir Cabral Gonçalves +Jaredes Maria Izidoro Cardoso +Dorival Cardoso +Vanessa Izidoro Cardoso +Maria Izidoro Alves +Olivia de Mello Bruno +Elis Regina Sicheirolli +Hielina Machado de Oliveira +Leonardo Gabriel Anverze +GERONILDA SEMIÃO A. DA SILVA +VANILDA DE LIMA SILVA +DIANA LAURA DA S. FRANÇA +AIRIS BATISTA DE LIMA +SOCORRO BATISTA DE LIMA +TAINA DE LIMA MATOS +MARIA BATISTA DOS SANTOS +LUZINETE M. DA SILVA +MARIA ROSA B. DOS SANTOS +LIA NEGREIROS CARDOSO +LILIAN AVANIL CARDOSO DIAS +NEUZETE ROSA DOS SANTOS +MARIA SINEIDE B. DOS SANTOS +MARIA APARECIDA DA CONCEIÇÃO +RAYANE DOS SANTOS +SUZIANE DA SILVA PINTO +SIMONE BATISTA DOS SANTOS +CHARLES FELIPE PINTO DE MORAES +KATY BARBOSA DOS SANTOS +RENILDA DO CARMO SILVA +TAMYRES OLIVEIRA S. SANTOS +EDNEIDE MARIA DOS SANTOS +MARIA DAS DORES DA SILVA ROSA +MARIA TERESINHA BARROS +MARIA DAS GRAÇAS LIRA SANTOS +MARIA GORETE BATISTA DA SILVA +ROSIANE BARBOSA DUARTE +MIRCO BORGA +MARY LUCIA DA SILVA RIBEIRO +MARIA DO SOCORRO MARINHO DA SILVA +MARIA ALDEMIRA DOS SANTOS FROES +FERNANDA VILA MARTIM +ROSA HELENA SEABRA MESQUITA +ROSANA NUNES AGUIAR +MARIA AUXILIADORA GALDINO SOARES +IEDA BRUNA OLIVEIRA SOUZA +Maria da Conceição Morais dos Santos +Elisabete Frois de Souza +ROSIMEIRE DE ASSIS CORREA +MARIA LUCIA DOS SANTOS +IRENIA SALES MELO DE JESUS +CLEMILDA MORAES DOS SANTOS +EDNA DOS SANTOS DA SILVA +LUCIENE DOS SANTOS +ELMARA DA SILVA SANTOS +JOANA CÂNDIDA DOS SANTOS +Darlene R. dos Santos +Edileuza S. dos santos +Marcia S.Santana +Manoel J.Santos +Manoel R. Pereira +Lucilene V.Nascimento +Rosalia R.Santos +Josilene R. Santos +Maria J.P. Conceição +Beatriz Fernanda Lucindo +Beatriz Gomes Ferreira Salmente +Railda dos Santos +Maria vanda dos Santos +Valdirene Fonseca +Adrielia P. Costa +Berlita A. Barbosa +Valdelice S. Freitas +Eronaldo F.Santos +Nadiele S. Sousa +Lindaci V. Dos Santos +Jeane Freitas De Brito +Valdemir da E. Santos +FLÁVIA RODRIGUES +LUCINALVA LIMA DO NASCIMENTO +SIMONE LOURENÇO DE OLIVEIRA +MARIA HELENA GUERRA +Guicelma Maria Trindade de Oliveira +Rafaela Cristina Galoti da Costa Augusto +Silvio Reginaldo Augusto Junior +Ana Paula Franco Galoti +Midiã Cristine Ventura dos Santos, +Alessandro Francisco dos Santos, +Margareth Rosa de Jesus Luiz +Maria Rosa da Silva, +Suelen Santos de Lima +Abmael Joaquim dos Santos +AVANI SALES DE SOUZA +MARIA PATRICIA FELICIANO DE FRANÇA +MARIA DE FÁTIMA MOTA BARBOSA +IVANILDE AVELINO ALVES +ADRIANA PEREIRA SALES +MARIA EDIVANIA DA SILVA +MARIA GORETTE LEITE GUIMARÃES +MARIA JOSÉ PEREIRA +ANA CRISTIANA BARBOSA FERREIRA +SEBASTIANA DA SILVA SOUSA +WILMA ROSEMERE NASCIMENTO NUNES +IRENILDI AVELINO DE LIMA +Silvana Rodrigues da Silva +Adriana Batista de Souza +Simone Pereira dos Santos +Rosane Rodrigues Ferreira +Jaqueline Pereira dos Santos +Jaina Kelly Alves de Andrade +Iraci de Oliveira Lima +Taciana Melo de Sousa +Silvanete Silva +Charlene de Carvalho Silva +Ivanete de Moura +Maria Salete Maia de Oliveira +Eliene Maia de Oliveira +Maria Suely da Cruz Silva +Raimunda Karoline de Lima Pessoa +Raimunda Lucia Pessoa de Lima +Maria Selma dos Santos Lima +Maria Salete Pontes de Lima Neta +Maria da Silva Santos +Diana Paula da Silva Santos +Maria Barbosa de Carvalho +Antonio Francisco de Oliveira Rocha +Francisco dos Santos Mendes +José Sérgio da Silva Ribeiro +Eliane Vieira Nunes +Naiane Souza de Oliveira +Zildene do Carmo Nogueira +Zildilene do Carmo Nogueira +Andrea Maria da Silva Pessoa +Antonia Maria da Conceição +Keila Silva dos Santos +Maria do Desterro Barbosa de Morais +Maria Rozimeire de Souza +Maria Marcelia Pereira +Maria Zilma do Nascimento Dias +Paula Soledad Tolmo Escobar +Nair Silva dos Santos +SIMARA SAMPAIO LHOTA +ZULMIRA FERREIRA SAMPAIO +ELIETE MADURO DA CUNHA +JUCIMAR MESQUITA +CLEIDESMAR RIBEIRO GAMA +MARIA IVONE DA SILVA DANTAS +CATARINA DA SILVA SAMPAIO +MARIA DO SOCORRO DE SOUZA GONÇALVES +MARCIA TEIXEIRA DE LIMA +Neurilene Cruz da Silva +Raimunda Rodrigues Marques +Luziania Cruz Barbosa +Tatiane Pereira da Costa +Cleociana Figueira da Silva +Maria Lindalva da Silva Marcião +Maria da Conceição da SIlva Araujo +Raiza Araujo de Melo +Maria Francisca Pedrosa dos Anjos +Carlos da Silva Filho +Cristiane Vieria Brandão +Maria das Graças Vale de Sousa +Sonia M. G. Teixeira +Dionisia N. P. Nascimento +Maria C. S. Sousa +Airaquelita M. Barata +Pedrinha S. Silva +Maria S. S. Silva +Suely C. S. Silva +Daniele C. Vale + Maria I. Vale +Maria C. N. Silva +Ana Maria dos Santos Valente +Eliete Sanches Marques +Elisélia Sanches Marques +Elizeth Marques de Souza +Eziethe Sanches Marques +Lisomar Ferreira da Cruz +Luzia Gonçalves Moraes +Mailze Benassuly de Freitas +Maria Eliana Magno +Maria de Jesus Ferreira Valente +Marilene da Silva Lopes +Silvia Marques de Sousa +Salete da Fátima Moreno +Mirian Gums Hardt +Francisca Claudia Libardi +Cleide maria da SIlva +Cleide Marli da Silva +Cleomair Zonta +Ciria da Silva Santos +Camila dos Santos de Jesus +Celinalva Maria dos Santos Silva +Ana Kelly dos Santos Silva +Vanuzia dos Santos Silva +Matilde Maria dos Santos +Jailton Santos de Jesus +Natalia da Silva Lima +Jose Emiliano dos Santos +Erinilde Mrinho de Souza +Emiliano José dos Santos +Joziel Borges dos Santos +Paula Sousa Pinto de Oliveira +Natalia Sousa Pinto Bastos +Ana Lucia Romualdo +Cristiane Fernandes Correia +Sandra Regina Petrusinas +Adriana Lima Batista +Amanda Kelly da Silva +Kelly Christina Cardoso da Silva +Carla de Carvalho Silva Fernandes +Ilma Mendes de Oliveira +Lídia Marques da Silva +Alessandra Marques Possebon +Maria Valdenice Pires de Morais +Andreza Alves de Morais +Stephanie Heloisa Alves Santana +Maria Valdeci de Morais +Flávia Alves de Morais +Jhuli Cristine Alves da Saliva +Fernanda Gomes Feitosa Prado +Vanessa de Azevedo Vaz +Amanda Cristina Gomes Prado +SANDRA SOARES DE CASTRO +MICHELE CRISTINA BORTOLOTTI +KATIA VIERA DE FREITAS RODOLPHO +SONIA GONÇALVES CLARO DOS SANTOS +Anerides Batista de Sousa +Maria da Guia Oliveira de Carvalho +Olga Maria de Carvalho Barbosa +Luciana Oliveira de Carvalho +Maria da Guia da Silva Trindade +Maria José da Costa de Lima +Lúcia Valéria de Carvalho +Josélia Ferreira da Silva +Maria das Graças Fernandes da Silva +IVANA CANOVAS +MARIA EDJANE DA SILVA OLIVEIRA +Silvia Maria Rocha +Makalu Waurá +Makalu Waurá +Puhama Waurá +Wokepe Waurá +Wataho Waurá +Regina Waurá +Waru Waurá +Yanapuku Waurá +Apulta Waurá +Yatamalu Waurá +Yaminalu Alapokumalu Waurá +Mauka Waurá +Ayuwelu Waurá +Tsirihin Alini Waurá +Yumuitxumalu Waurá +Kayu Alice Waurá Kamayura +VERONICA SENA DE FRANÇA +Luciana Maria da Silva +DANIELE DA SILVA ALMEIDA +Yalupa Waurá +Sesuaka Waurá +Tainara Waurá +Ulupato Waurá +Kamayulalu Pulun Waurá +Mapulu Waurá +Ulussan Waurá +Atanumalu Waurá +Yamanua Waurá +Tsutsu Katalakato Waurá +Kuiai Waurá +Apaipuwalu Waurá +Autuyawalu Waurá +Maitsa Yanine Waurá +Denise de Souza Nascimento +Josefa Feliz de Souza Nascimento +Marilene Ferreira da Silva +Maria do Carmo de Souza +Raquel Peres Brum +Eneida Souza da Silva +Carmen Rosane Garcia Lafuente +Juliana Azambuja +Adriana Aparecida Rocha Corrêa +Márcia Reis dos Santos +Lúcia Batista da Silva Santos +MARIA DE FÁTIMA MACEDO NASCIMENTO +ADORÍVIA TAVARES DE OLIVEIRA +Alapo Okanutapatai Waurá +Fernanda P. de Araújo +Yaminalu Alapokumalu Waurá +Atapuwalu Waurá +Takailu Waurá +Kuripawaka Waurá +Yamulu Waurá +Katsiparu Waurá +Unu Waurá +Walakuwitsu Waurá +Kayahulalu Waurá +Kutalu Waurá +Ukupiru Waurá +Mapalu Waurá +Rozania Maria Oliveira Coutinho +ANA CLÁUDIA VIEIRA DOS SANTOS +Lucia das Graças Candido da Silva Jesus +Emilce Viana do Nascimento +Cristiane Barreto Rodrigues +Ana Neri da Penha Oliveira +Raquel Barreto Rodrigues +Carla Roberta Manhaes Bueno +Jornete da Silva Ribeiro +Michele Robeiro Nunes +Janusa Nunes Monteiro +Maria Paula Ribeiro dos Santos +Raimunda Freira Santana +Cleuza Aleixo Malves +Geralda Aparecida Pereira Rosa +Marlene Maria Mol +Rosa Maria do Carmo Santos +Jessica Stefanny M Rocha Silva +Ariane Fernanda Schulz +Marici Aparecida Batista dos Santos +Marina Gardiano da Silva +Diamantina Cruz +Sebastiana Vagem Dinis +Brunilde dos Santos Silva +Alequissandra Gomes Xavier +Alessandra Gomes Xavier +Mikaele Oliveira Vieira +Raynete Dias da Dilva +Patrícia Trentini +Ana Paula Ferreira Lima Oliveira +Roseli Dora Arndt +Franceli Graziela Mariano Jesus +Denis teste +daniele cavichio +dsfasdfasdf \ No newline at end of file From bf359fe50e65b1d46d7110558261ede8b20cf6e9 Mon Sep 17 00:00:00 2001 From: denis Date: Mon, 1 May 2017 23:56:55 -0300 Subject: [PATCH 6/7] =?UTF-8?q?corre=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eclipse.ini | 2 -- 1 file changed, 2 deletions(-) diff --git a/eclipse.ini b/eclipse.ini index 0a13c703..bcc00764 100644 --- a/eclipse.ini +++ b/eclipse.ini @@ -10,8 +10,6 @@ org.eclipse.epp.package.jee.product openFile -showsplash org.eclipse.platform ---launcher.defaultAction -openFile --launcher.appendVmargs -vmargs -Xverify:none From 3a101bd76d89451a825dacc1ea203664713846fe Mon Sep 17 00:00:00 2001 From: DENIS APOLINARIO DA SILVA Date: Mon, 22 May 2017 16:09:29 -0300 Subject: [PATCH 7/7] testes --- src/main/java/SubstituirValorTagXml.java | 49 +++++++++++++++++++ .../java/org/java8/ExemploInputStream.java | 18 +++++++ src/main/java/org/java8/FilesCopy.java | 33 +++++++++++++ src/main/java/org/java8/TestString.java | 23 +++++++++ 4 files changed, 123 insertions(+) create mode 100644 src/main/java/SubstituirValorTagXml.java create mode 100644 src/main/java/org/java8/ExemploInputStream.java create mode 100644 src/main/java/org/java8/FilesCopy.java create mode 100644 src/main/java/org/java8/TestString.java diff --git a/src/main/java/SubstituirValorTagXml.java b/src/main/java/SubstituirValorTagXml.java new file mode 100644 index 00000000..5549eab8 --- /dev/null +++ b/src/main/java/SubstituirValorTagXml.java @@ -0,0 +1,49 @@ + + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class SubstituirValorTagXml { + + private static final String PATH = "C:\\work\\propostas\\propostas_2017_01\\"; + private static final String PATH_SAIDA = "C:\\work\\propostas\\propostas_2017_01_saida\\"; + + //private static final String PATH = "C:\\ambienteDesenv\\propostas_2017_01\\"; + //private static final String PATH_SAIDA = "C:\\ambienteDesenv\\propostas_2017_01_saida\\"; + + public static void main(String[] args) { + try { + File arquivos[]; + File diretorio = new File(PATH); + arquivos = diretorio.listFiles(); + + for (int i = 0; i < arquivos.length; i++) { + + File nomeArquivo = arquivos[i]; + System.out.println(nomeArquivo); + String content = new String(Files.readAllBytes(Paths.get(nomeArquivo.getCanonicalPath()))); + + int indexOf = content.indexOf(""); + int indexfim = content.indexOf(""); + + String stringQueSeraSubstituida = content.substring(indexOf, indexfim); + + int indexofFim = stringQueSeraSubstituida.indexOf(">"); + int cd_cttppo = Integer.parseInt(stringQueSeraSubstituida.substring(indexofFim + 1)); + + cd_cttppo = cd_cttppo + 1; + + System.out.println(stringQueSeraSubstituida); + String novoValor = "" + cd_cttppo; + content = content.replace(stringQueSeraSubstituida, novoValor); + // VERIFICAR SE O ARQUIVO JA EXISTE + Files.write(Paths.get(PATH_SAIDA + nomeArquivo.getName()), content.getBytes()); + } + + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/org/java8/ExemploInputStream.java b/src/main/java/org/java8/ExemploInputStream.java new file mode 100644 index 00000000..41a8d6e0 --- /dev/null +++ b/src/main/java/org/java8/ExemploInputStream.java @@ -0,0 +1,18 @@ +package org.java8; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.stream.Collectors; + +public class ExemploInputStream { + public static void main(String[] args) { + } + + private static String read(InputStream input) throws IOException { + try (BufferedReader buffer = new BufferedReader(new InputStreamReader(input))) { + return buffer.lines().collect(Collectors.joining("\n")); + } + } +} diff --git a/src/main/java/org/java8/FilesCopy.java b/src/main/java/org/java8/FilesCopy.java new file mode 100644 index 00000000..406c4ede --- /dev/null +++ b/src/main/java/org/java8/FilesCopy.java @@ -0,0 +1,33 @@ +package org.java8; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.file.StandardCopyOption; + +public class FilesCopy { + public static void main(String[] args) { + try { + // Exemplo 1 + InputStream initialStream = new FileInputStream(new File("src/main/resources/sample.txt")); + File targetFile = new File("src/main/resources/targetFile.tmp"); + + java.nio.file.Files.copy(initialStream, targetFile.toPath(), StandardCopyOption.REPLACE_EXISTING); + + // Exemplo 2 + InputStream initialStream1 = new FileInputStream(new File("src/main/resources/sample.txt")); + byte[] buffer = new byte[initialStream1.available()]; + initialStream.read(buffer); + + File targetFile1 = new File("src/main/resources/targetFile.tmp"); + OutputStream outStream = new FileOutputStream(targetFile1); + outStream.write(buffer); + + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } +} diff --git a/src/main/java/org/java8/TestString.java b/src/main/java/org/java8/TestString.java new file mode 100644 index 00000000..cb46b336 --- /dev/null +++ b/src/main/java/org/java8/TestString.java @@ -0,0 +1,23 @@ +package org.java8; + +public class TestString { + + public static void main(String[] args) { + String s1 = "java"; + String s2 = "java"; + String s3 = new String("java"); + if (s1 == s2) { + System.out.println("s1 == s2"); + } + if (s1.equals(s2)) { + System.out.println("s1.equals(s2)"); + } + if (s1 == s3) { + System.out.println("s1 == s3"); + } + if (s1.equals(s3)) { + System.out.println("s1.equals(3)"); + } + + } +}