#24 Kate Moore

Ouvert
katelynne veut fusionner 1 révision(s) depuis katelynne/CR-MicroLabs-Streams-And-Lambdas:master vers master

+ 2
- 1
.idea/compiler.xml Voir le fichier

@@ -7,10 +7,11 @@
7 7
         <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
8 8
         <outputRelativeToContentRoot value="true" />
9 9
         <module name="looptest" />
10
+        <module name="streamdemo" />
10 11
       </profile>
11 12
     </annotationProcessing>
12 13
     <bytecodeTargetLevel target="1.8">
13
-      <module name="looptest" target="1.8" />
14
+      <module name="streamdemo" target="8" />
14 15
     </bytecodeTargetLevel>
15 16
   </component>
16 17
 </project>

+ 656
- 977
.idea/workspace.xml
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 16
- 7
src/main/java/com/zipcodewilmington/streams/StreamFilter.java Voir le fichier

@@ -5,6 +5,7 @@ import com.zipcodewilmington.streams.anthropoid.PersonFactory;
5 5
 import com.zipcodewilmington.streams.tools.RandomUtils;
6 6
 import com.zipcodewilmington.streams.tools.StringUtils;
7 7
 
8
+import java.util.Arrays;
8 9
 import java.util.List;
9 10
 import java.util.stream.Collectors;
10 11
 import java.util.stream.Stream;
@@ -20,7 +21,8 @@ public class StreamFilter {
20 21
      * No arg constructor
21 22
      */ //TODO - construct person stream of 100 person objects; startingCharacter is a random capital letter
22 23
     public StreamFilter() {
23
-        this(Stream.empty(), null);
24
+        this(PersonFactory.createPersonStream(100), RandomUtils.createCharacter('A', 'Z'));
25
+
24 26
     }
25 27
 
26 28
     /**
@@ -28,7 +30,8 @@ public class StreamFilter {
28 30
      * @param startingCharacter - character to filter by
29 31
      */ //TODO
30 32
     public StreamFilter(Person[] people, Character startingCharacter) {
31
-        this(Stream.empty(), null);
33
+        this(Arrays.stream(people), startingCharacter);
34
+
32 35
     }
33 36
 
34 37
     /**
@@ -36,7 +39,7 @@ public class StreamFilter {
36 39
      * @param startingCharacter - character to filter by
37 40
      */ //TODO
38 41
     public StreamFilter(List<Person> people, Character startingCharacter) {
39
-        this(Stream.empty(), null);
42
+        this(people.stream(), startingCharacter);
40 43
     }
41 44
 
42 45
 
@@ -55,7 +58,9 @@ public class StreamFilter {
55 58
      * @return a list of person object whose name starts with `this.startingCharacter`
56 59
      */ //TODO
57 60
     public List<Person> toListMultiLine() {
58
-        return null;
61
+        List<Person> list = personStream.filter(person -> StringUtils.isPalindromeIgnoreCase(person
62
+                .getName())).collect(Collectors.toList());
63
+        return list;
59 64
     }
60 65
 
61 66
 
@@ -64,7 +69,9 @@ public class StreamFilter {
64 69
      * @return a list of person objects whose name starts with `this.startingCharacter`
65 70
      */ //TODO
66 71
     public List<Person> toListOneLine() {
67
-        return null;
72
+        List<Person> list = personStream.filter(person -> StringUtils.isPalindromeIgnoreCase(person
73
+                .getName())).collect(Collectors.toList());
74
+        return list;
68 75
     }
69 76
 
70 77
 
@@ -73,7 +80,8 @@ public class StreamFilter {
73 80
      * @return an array of person object whose name starts with `this.startingCharacter`
74 81
      */ //TODO
75 82
     public Person[] toArrayOneLine() {
76
-        return null;
83
+        return personStream.filter(person -> StringUtils.isPalindromeIgnoreCase(person.getName())).toArray(Person[]::new);
84
+
77 85
     }
78 86
 
79 87
 
@@ -82,7 +90,8 @@ public class StreamFilter {
82 90
      * @return an array of person object whose name starts with `this.startingCharacter`
83 91
      */ //TODO
84 92
     public Person[] toArrayMultiLine() {
85
-        return null;
93
+
94
+        return personStream.filter(person -> StringUtils.isPalindromeIgnoreCase(person.getName())).toArray(Person[]::new);
86 95
     }
87 96
 
88 97
 }

+ 4
- 3
src/main/java/com/zipcodewilmington/streams/StreamMap.java Voir le fichier

@@ -5,6 +5,7 @@ import com.zipcodewilmington.streams.conversions.StreamConverter;
5 5
 
6 6
 import java.util.Arrays;
7 7
 import java.util.List;
8
+import java.util.WeakHashMap;
8 9
 import java.util.stream.Collectors;
9 10
 import java.util.stream.Stream;
10 11
 
@@ -18,7 +19,7 @@ public class StreamMap {
18 19
      * @return - a Stream of single characters
19 20
      */ //TODO
20 21
     public static Stream<String> letters(String someWord) {
21
-        return null;
22
+        return someWord.chars().mapToObj(c -> String.valueOf(c));
22 23
     }
23 24
 
24 25
     /**
@@ -26,7 +27,7 @@ public class StreamMap {
26 27
      * @return - a Stream of several Streams of single characters
27 28
      */ //TODO
28 29
     public static Stream<Stream<String>> wordsMap(String... someWords) {
29
-        return null;
30
+        return Stream.of(someWords).map(c -> letters(c));
30 31
     }
31 32
 
32 33
     /**
@@ -34,6 +35,6 @@ public class StreamMap {
34 35
      * @return - a Stream of several Streams of single characters
35 36
      */ //TODO
36 37
     public static Stream<String> wordsFlatMap(String... stringArray) {
37
-        return null;
38
+        return Stream.of(stringArray).flatMap(c -> letters(c));
38 39
     }
39 40
 }

+ 7
- 3
src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java Voir le fichier

@@ -3,6 +3,7 @@ package com.zipcodewilmington.streams.anthropoid;
3 3
 import com.zipcodewilmington.streams.tools.RandomUtils;
4 4
 import com.zipcodewilmington.streams.tools.StringUtils;
5 5
 
6
+import java.util.Arrays;
6 7
 import java.util.Date;
7 8
 import java.util.List;
8 9
 import java.util.stream.Collectors;
@@ -39,7 +40,8 @@ public final class PersonFactory {
39 40
      * @return - ArrayList of Person objects
40 41
      */ // TODO
41 42
     public static List<Person> createPersonList(int listSize) {
42
-        return null;
43
+        Stream<Person> stream = Stream.generate(PersonFactory::createRandomPerson).limit(listSize);
44
+        return stream.collect(Collectors.toList());
43 45
     }
44 46
 
45 47
 
@@ -48,7 +50,8 @@ public final class PersonFactory {
48 50
      * @return - Array of Person objects
49 51
      */ // TODO
50 52
     public static Person[] createPersonArray(int arrayLength) {
51
-        return null;
53
+        Stream<Person> stream = Stream.generate(PersonFactory::createRandomPerson).limit(arrayLength);
54
+        return stream.toArray(Person[]::new);
52 55
     }
53 56
 
54 57
 
@@ -58,6 +61,7 @@ public final class PersonFactory {
58 61
      * @return - Stream representation of collection of Person objects
59 62
      */ // TODO
60 63
     public static Stream<Person> createPersonStream(int streamCount) {
61
-        return null;
64
+        Stream<Person> stream = Stream.generate(PersonFactory::createRandomPerson).limit(streamCount);
65
+        return stream;
62 66
     }
63 67
 }

+ 8
- 2
src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java Voir le fichier

@@ -7,6 +7,7 @@ import com.zipcodewilmington.streams.tools.logging.LoggerWarehouse;
7 7
 import java.util.ArrayList;
8 8
 import java.util.List;
9 9
 import java.util.Map;
10
+import java.util.Optional;
10 11
 import java.util.stream.Collectors;
11 12
 import java.util.stream.Stream;
12 13
 
@@ -35,7 +36,7 @@ public final class PersonWarehouse {
35 36
      * @return list of uniquely named Person objects
36 37
      */ //TODO
37 38
     public static Stream<Person> getUniquelyNamedPeople() {
38
-        return null;
39
+        return people.stream().distinct();
39 40
     }
40 41
 
41 42
 
@@ -44,7 +45,10 @@ public final class PersonWarehouse {
44 45
      * @return a Stream of respective
45 46
      */ //TODO
46 47
     public static Stream<Person> getUniquelyNamedPeopleStartingWith(Character character) {
47
-        return null;
48
+        Stream<Person> starts = getUniquelyNamedPeople()
49
+                .filter(person -> person.name.charAt(0) == character);
50
+
51
+        return starts;
48 52
     }
49 53
 
50 54
     /**
@@ -52,6 +56,8 @@ public final class PersonWarehouse {
52 56
      * @return a Stream of respective
53 57
      */ //TODO
54 58
     public static Stream<Person> getFirstNUniquelyNamedPeople(int n) {
59
+//        Stream<Person> stream = getUniquelyNamedPeople()
60
+//               .filter(person -> )
55 61
         return null;
56 62
     }
57 63
 

+ 5
- 2
src/main/java/com/zipcodewilmington/streams/conversions/ArrayConverter.java Voir le fichier

@@ -5,6 +5,7 @@ import com.zipcodewilmington.streams.anthropoid.PersonFactory;
5 5
 
6 6
 import java.util.Arrays;
7 7
 import java.util.List;
8
+import java.util.stream.Collectors;
8 9
 import java.util.stream.Stream;
9 10
 
10 11
 /**
@@ -23,12 +24,14 @@ public final class ArrayConverter extends PersonConversionAgent<Person[]> {
23 24
 
24 25
     //TODO
25 26
     public List<Person> toList() {
26
-        return null;
27
+        List<Person> list = Arrays.stream(objectSequence).collect(Collectors.toList());
28
+        return list;
27 29
     }
28 30
 
29 31
     //TODO
30 32
     public Stream<Person> toStream() {
31
-        return null;
33
+        Stream<Person> stream = Arrays.stream(objectSequence);
34
+        return stream;
32 35
     }
33 36
 
34 37
     @Override

+ 2
- 2
src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java Voir le fichier

@@ -27,11 +27,11 @@ public final class ListConverter extends PersonConversionAgent<List<Person>> {
27 27
 
28 28
     //TODO
29 29
     public Stream<Person> toStream() {
30
-        return null;
30
+        return objectSequence.stream();
31 31
     }
32 32
 
33 33
     //TODO
34 34
     public Person[] toArray() {
35
-        return null;
35
+        return objectSequence.stream().toArray(Person[]::new);
36 36
     }
37 37
 }

+ 4
- 3
src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java Voir le fichier

@@ -3,6 +3,7 @@ package com.zipcodewilmington.streams.conversions;
3 3
 import com.zipcodewilmington.streams.anthropoid.Person;
4 4
 import com.zipcodewilmington.streams.anthropoid.PersonFactory;
5 5
 
6
+import java.util.Arrays;
6 7
 import java.util.List;
7 8
 import java.util.stream.Collectors;
8 9
 import java.util.stream.Stream;
@@ -25,16 +26,16 @@ public final class StreamConverter extends PersonConversionAgent<Stream<Person>>
25 26
 
26 27
     // TODO
27 28
     public List<Person> toList() {
28
-        return null;
29
+        return personList;
29 30
     }
30 31
 
31 32
     // TODO
32 33
     public Stream<Person> toStream() {
33
-        return null;
34
+        return personList.stream();
34 35
     }
35 36
 
36 37
     // TODO
37 38
     public Person[] toArray() {
38
-        return null;
39
+        return personList.stream().toArray(Person[]::new);
39 40
     }
40 41
 }

+ 1
- 1
streamdemo.iml Voir le fichier

@@ -9,7 +9,7 @@
9 9
       <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
10 10
       <excludeFolder url="file://$MODULE_DIR$/target" />
11 11
     </content>
12
-    <orderEntry type="inheritedJdk" />
12
+    <orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
13 13
     <orderEntry type="sourceFolder" forTests="false" />
14 14
     <orderEntry type="library" name="Maven: junit:junit:4.12" level="project" />
15 15
     <orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />

+ 850394
- 6
target/PersonWarehouse.leonlog
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


BIN
target/classes/com/zipcodewilmington/streams/StreamFilter.class Voir le fichier


BIN
target/classes/com/zipcodewilmington/streams/StreamMap.class Voir le fichier


BIN
target/classes/com/zipcodewilmington/streams/anthropoid/PersonFactory.class Voir le fichier


BIN
target/classes/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.class Voir le fichier


BIN
target/classes/com/zipcodewilmington/streams/conversions/ArrayConverter.class Voir le fichier


BIN
target/classes/com/zipcodewilmington/streams/conversions/ListConverter.class Voir le fichier


BIN
target/classes/com/zipcodewilmington/streams/conversions/StreamConverter.class Voir le fichier


+ 1
- 1
target/global.leonlog Voir le fichier

@@ -1,2 +1,2 @@
1
-May 31, 2017 4:45:59 PM com.zipcodewilmington.streams.tools.logging.LoggerHandler log
1
+Nov 20, 2018 11:00:10 PM com.zipcodewilmington.streams.tools.logging.LoggerHandler log
2 2
 INFO: Instantiating logger for [ com.zipcodewilmington.streams.anthropoid.PersonWarehouse ] ... 

BIN
target/test-classes/com/zipcodewilmington/streams/TestStreamMap.class Voir le fichier