From 871bb18ac988df65831d083ec435603b67bb8242 Mon Sep 17 00:00:00 2001 From: sitarameez Date: Wed, 28 Jul 2021 21:13:31 -0400 Subject: [PATCH 1/6] thanks to alumni session today i got started --- looptest.iml | 8 ++++---- .../streams/conversions/ArrayConverter.java | 4 ++-- .../streams/conversions/ListConverter.java | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/looptest.iml b/looptest.iml index 7f2d304..e34277e 100644 --- a/looptest.iml +++ b/looptest.iml @@ -10,10 +10,10 @@ - + - - - + + + \ No newline at end of file diff --git a/src/main/java/com/zipcodewilmington/streams/conversions/ArrayConverter.java b/src/main/java/com/zipcodewilmington/streams/conversions/ArrayConverter.java index 0a9d4d8..eb130da 100644 --- a/src/main/java/com/zipcodewilmington/streams/conversions/ArrayConverter.java +++ b/src/main/java/com/zipcodewilmington/streams/conversions/ArrayConverter.java @@ -25,12 +25,12 @@ public ArrayConverter(int collectionSize) { //TODO public List toList() { - return null; + return Arrays.asList(super.objectSequence); } //TODO public Stream toStream() { - return null; + return toList().stream(); } @Override diff --git a/src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java b/src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java index b64540b..458d44b 100644 --- a/src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java +++ b/src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java @@ -29,11 +29,11 @@ public List toList() { //TODO public Stream toStream() { - return null; + return toList().stream(); } //TODO public Person[] toArray() { - return null; + return toList().toArray(new Person[0]); } } From 84f94ec2630ffcc654f0a50a7b183ead4276cb80 Mon Sep 17 00:00:00 2001 From: sitarameez Date: Thu, 29 Jul 2021 12:07:35 -0400 Subject: [PATCH 2/6] thanks for the easy constructor --- .../com/zipcodewilmington/streams/StreamFilter.java | 10 +++++++--- .../streams/conversions/StreamConverter.java | 6 +++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/streams/StreamFilter.java b/src/main/java/com/zipcodewilmington/streams/StreamFilter.java index d8b89ae..b7e57ed 100644 --- a/src/main/java/com/zipcodewilmington/streams/StreamFilter.java +++ b/src/main/java/com/zipcodewilmington/streams/StreamFilter.java @@ -5,6 +5,7 @@ import com.zipcodewilmington.streams.tools.RandomUtils; import com.zipcodewilmington.streams.tools.StringUtils; +import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -20,7 +21,7 @@ public class StreamFilter { * No arg constructor */ //TODO - construct person stream of 100 person objects; startingCharacter is a random capital letter public StreamFilter() { - this(Stream.empty(), null); + this(new PersonFactory().createPersonList(100),RandomUtils.createCharacter('A','Z')); } /** @@ -28,7 +29,9 @@ public StreamFilter() { * @param startingCharacter - character to filter by */ //TODO public StreamFilter(Person[] people, Character startingCharacter) { - this(Stream.empty(), null); + this.personStream=Arrays.stream(people); + this.startingCharacter=startingCharacter.toString(); + ; } /** @@ -36,7 +39,8 @@ public StreamFilter(Person[] people, Character startingCharacter) { * @param startingCharacter - character to filter by */ //TODO public StreamFilter(List people, Character startingCharacter) { - this(Stream.empty(), null); + this.personStream = people.stream(); + this.startingCharacter=startingCharacter.toString(); } diff --git a/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java b/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java index 159d048..d651b13 100644 --- a/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java +++ b/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java @@ -25,16 +25,16 @@ public StreamConverter(int collectionSize) { // TODO public List toList() { - return null; + return personList; } // TODO public Stream toStream() { - return null; + return personList.stream(); } // TODO public Person[] toArray() { - return null; + return personList.toArray(new Person[0]); } } From 1622b6353ab1d87282be8b0a2a35df2da2fed699 Mon Sep 17 00:00:00 2001 From: sitarameez Date: Thu, 29 Jul 2021 16:31:41 -0400 Subject: [PATCH 3/6] three more classes to do --- .../zipcodewilmington/streams/StreamFilter.java | 15 ++++++++++----- .../com/zipcodewilmington/streams/StreamMap.java | 9 ++++++--- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/streams/StreamFilter.java b/src/main/java/com/zipcodewilmington/streams/StreamFilter.java index b7e57ed..f3628ad 100644 --- a/src/main/java/com/zipcodewilmington/streams/StreamFilter.java +++ b/src/main/java/com/zipcodewilmington/streams/StreamFilter.java @@ -59,16 +59,21 @@ public StreamFilter(Stream people, Character startingCharacter) { * @return a list of person object whose name starts with `this.startingCharacter` */ //TODO public List toListMultiLine() { - return null; + List multiList = personStream + .filter(person -> startingCharacter.equals(person.getName().charAt(0))) + .collect(Collectors.toList()); + return multiList; } - /** * Using one-line lambda syntax * @return a list of person objects whose name starts with `this.startingCharacter` */ //TODO public List toListOneLine() { - return null; + List oneLine = personStream + .filter(person -> startingCharacter.equals(person.getName().charAt(0))) + .collect(Collectors.toList()); + return oneLine; } @@ -77,7 +82,7 @@ public List toListOneLine() { * @return an array of person object whose name starts with `this.startingCharacter` */ //TODO public Person[] toArrayOneLine() { - return null; + return toListOneLine().toArray(new Person[0]); } @@ -86,7 +91,7 @@ public Person[] toArrayOneLine() { * @return an array of person object whose name starts with `this.startingCharacter` */ //TODO public Person[] toArrayMultiLine() { - return null; + return toArrayOneLine(); } } diff --git a/src/main/java/com/zipcodewilmington/streams/StreamMap.java b/src/main/java/com/zipcodewilmington/streams/StreamMap.java index cf35024..54bbd72 100644 --- a/src/main/java/com/zipcodewilmington/streams/StreamMap.java +++ b/src/main/java/com/zipcodewilmington/streams/StreamMap.java @@ -18,7 +18,8 @@ public class StreamMap { * @return - a Stream of single characters */ //TODO public static Stream letters(String someWord) { - return null; + String[] characters=someWord.split(""); + return Stream.of(characters); } /** @@ -26,7 +27,7 @@ public static Stream letters(String someWord) { * @return - a Stream of several Streams of single characters */ //TODO public static Stream> wordsMap(String... someWords) { - return null; + return Stream.of(someWords).map(w->letters(w)); } /** @@ -34,6 +35,8 @@ public static Stream> wordsMap(String... someWords) { * @return - a Stream of several Streams of single characters */ //TODO public static Stream wordsFlatMap(String... stringArray) { - return null; + Stream wordStream=Stream.of(stringArray); + List wordList =wordStream.collect(Collectors.toList()); + return wordList.stream().flatMap(w -> letters(w)); } } \ No newline at end of file From 089f04495610d84a55fc777169e8394ab48efd92 Mon Sep 17 00:00:00 2001 From: sitarameez Date: Thu, 29 Jul 2021 16:45:30 -0400 Subject: [PATCH 4/6] person factory not sure if this is how we should do --- .../streams/anthropoid/PersonFactory.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java b/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java index a10ec7b..e172c9c 100644 --- a/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java +++ b/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java @@ -39,7 +39,9 @@ public Person createRandomPerson() { * @return - ArrayList of Person objects */ // TODO public List createPersonList(int listSize) { - return null; + List listSizePerson = Stream + .generate(this::createRandomPerson).limit(listSize).collect(Collectors.toList()); + return listSizePerson; } @@ -48,7 +50,7 @@ public List createPersonList(int listSize) { * @return - Array of Person objects */ // TODO public Person[] createPersonArray(int arrayLength) { - return null; + return createPersonList(arrayLength).toArray(new Person[0]); } @@ -59,6 +61,6 @@ public Person[] createPersonArray(int arrayLength) { * @return - Stream representation of collection of Person objects */ // TODO public Stream createPersonStream(int streamCount) { - return null; + return createPersonList(streamCount).stream(); } } From 0bfaf64b5d00945e9274d462084ca691f75d8ca7 Mon Sep 17 00:00:00 2001 From: sitarameez Date: Thu, 29 Jul 2021 17:09:59 -0400 Subject: [PATCH 5/6] brain stopped working --- .../streams/anthropoid/PersonWarehouse.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java b/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java index a4960b1..5f82120 100644 --- a/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java +++ b/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java @@ -4,10 +4,7 @@ import com.zipcodewilmington.streams.tools.logging.LoggerHandler; import com.zipcodewilmington.streams.tools.logging.LoggerWarehouse; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -36,7 +33,7 @@ public void addPerson(Person person) { * @return list of names of Person objects */ // TODO public List getNames() { - return null; + return people.stream().map(w-> w.getName()).collect(Collectors.toList()); } @@ -44,7 +41,8 @@ public List getNames() { * @return list of uniquely named Person objects */ //TODO public Stream getUniquelyNamedPeople() { - return null; + // return people.stream().distinct(); + return null; } @@ -53,7 +51,8 @@ public Stream getUniquelyNamedPeople() { * @return a Stream of respective */ //TODO public Stream getUniquelyNamedPeopleStartingWith(Character character) { - return null; + +return null; } /** From 88ffa099696cd8168ca721c34dcb47022ec57317 Mon Sep 17 00:00:00 2001 From: sitarameez Date: Sat, 31 Jul 2021 13:26:34 -0400 Subject: [PATCH 6/6] completed --- .../streams/anthropoid/PersonFactory.java | 3 ++- .../streams/anthropoid/PersonWarehouse.java | 19 +++++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java b/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java index e172c9c..d32a6d6 100644 --- a/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java +++ b/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java @@ -50,7 +50,8 @@ public List createPersonList(int listSize) { * @return - Array of Person objects */ // TODO public Person[] createPersonArray(int arrayLength) { - return createPersonList(arrayLength).toArray(new Person[0]); + + return createPersonList(arrayLength).toArray(new Person[0]); } diff --git a/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java b/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java index 5f82120..85455bb 100644 --- a/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java +++ b/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java @@ -5,6 +5,7 @@ import com.zipcodewilmington.streams.tools.logging.LoggerWarehouse; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -41,8 +42,8 @@ public List getNames() { * @return list of uniquely named Person objects */ //TODO public Stream getUniquelyNamedPeople() { - // return people.stream().distinct(); - return null; + Set set=new HashSet<>(); + return people.stream().filter(p -> set.add(p.getName())); } @@ -51,8 +52,7 @@ public Stream getUniquelyNamedPeople() { * @return a Stream of respective */ //TODO public Stream getUniquelyNamedPeopleStartingWith(Character character) { - -return null; + return getUniquelyNamedPeople().filter(person -> person.getName().startsWith(character.toString())); } /** @@ -60,14 +60,17 @@ public Stream getUniquelyNamedPeopleStartingWith(Character character) { * @return a Stream of respective */ //TODO public Stream getFirstNUniquelyNamedPeople(int n) { - return null; + return getUniquelyNamedPeople().limit(n); + } /** * @return a mapping of Person Id to the respective Person name */ // TODO public Map getIdToNameMap() { - return null; + // Map map = new HashMap<>(); + //people.stream().map(person -> map.put(person.getPersonalId(),person.getName())); + return people.stream().collect(Collectors.toMap(Person::getPersonalId, Person::getName)); } @@ -75,7 +78,7 @@ public Map getIdToNameMap() { * @return Stream of Stream of Aliases */ // TODO public Stream> getNestedAliases() { - return null; + return people.stream().map(x -> Arrays.stream(x.getAliases())); } @@ -83,7 +86,7 @@ public Stream> getNestedAliases() { * @return Stream of all Aliases */ // TODO public Stream getAllAliases() { - return null; + return people.stream().flatMap(x -> Arrays.stream(x.getAliases())); } // DO NOT MODIFY