From 97ad40bb4ad38dc510a2ccef2efd1502d63bfeba Mon Sep 17 00:00:00 2001 From: laura Date: Sun, 1 Aug 2021 14:20:02 -0400 Subject: [PATCH 1/3] fixed stuff --- looptest.iml | 8 +-- .../streams/anthropoid/PersonFactory.java | 20 +++++-- .../streams/anthropoid/PersonWarehouse.java | 53 +++++++++++++++---- .../streams/conversions/ArrayConverter.java | 8 ++- .../streams/conversions/ListConverter.java | 9 +++- .../streams/conversions/StreamConverter.java | 13 +++-- 6 files changed, 86 insertions(+), 25 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/anthropoid/PersonFactory.java b/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java index a10ec7b..49126fe 100644 --- a/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java +++ b/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java @@ -39,7 +39,12 @@ public Person createRandomPerson() { * @return - ArrayList of Person objects */ // TODO public List createPersonList(int listSize) { - return null; + List personList = Stream + .generate(this::createRandomPerson) + .limit(listSize) + .collect(Collectors.toList()); + + return personList; } @@ -48,7 +53,12 @@ public List createPersonList(int listSize) { * @return - Array of Person objects */ // TODO public Person[] createPersonArray(int arrayLength) { - return null; + Person[] arrayDperson = Stream + .generate(this::createRandomPerson) + .limit(arrayLength) + .toArray(Person[]::new); + + return arrayDperson; } @@ -59,6 +69,10 @@ public Person[] createPersonArray(int arrayLength) { * @return - Stream representation of collection of Person objects */ // TODO public Stream createPersonStream(int streamCount) { - return null; + Stream stremOfPerson = Stream + .generate(this::createRandomPerson) + .limit(streamCount); + + return stremOfPerson; } } diff --git a/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java b/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java index a4960b1..287ceba 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,14 @@ public void addPerson(Person person) { * @return list of names of Person objects */ // TODO public List getNames() { - return null; + List nombres = people.stream() + // List nombres = Stream + .map(Person::getName) + .collect(Collectors.toList()); + + + + return nombres; } @@ -44,7 +48,12 @@ public List getNames() { * @return list of uniquely named Person objects */ //TODO public Stream getUniquelyNamedPeople() { - return null; + + Set setH = new HashSet<>(people.size()); + return people.stream().filter(person -> setH.add(person.getName())); + + + } @@ -53,7 +62,11 @@ public Stream getUniquelyNamedPeople() { * @return a Stream of respective */ //TODO public Stream getUniquelyNamedPeopleStartingWith(Character character) { - return null; + return people + .stream() + .filter(person -> person.getName().charAt(0) == character); + + } /** @@ -61,14 +74,19 @@ public Stream getUniquelyNamedPeopleStartingWith(Character character) { * @return a Stream of respective */ //TODO public Stream getFirstNUniquelyNamedPeople(int n) { - return null; + return people + .stream() + .limit(n); } /** * @return a mapping of Person Id to the respective Person name */ // TODO public Map getIdToNameMap() { - return null; + Map mapIdAnom = people // tabien puesde ser sin el mapy poner people.stram()............( y quitar el return de abajo) + .stream() + .collect(Collectors.toMap(Person::getPersonalId, Person::getName)); + return mapIdAnom; } @@ -76,7 +94,9 @@ public Map getIdToNameMap() { * @return Stream of Stream of Aliases */ // TODO public Stream> getNestedAliases() { - return null; + return people + .stream() + .map(person -> Arrays.stream(person.getAliases())); } @@ -84,9 +104,20 @@ 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 public Boolean contains(Person p) { return people.contains(p); diff --git a/src/main/java/com/zipcodewilmington/streams/conversions/ArrayConverter.java b/src/main/java/com/zipcodewilmington/streams/conversions/ArrayConverter.java index 0a9d4d8..c99d52d 100644 --- a/src/main/java/com/zipcodewilmington/streams/conversions/ArrayConverter.java +++ b/src/main/java/com/zipcodewilmington/streams/conversions/ArrayConverter.java @@ -1,5 +1,6 @@ package com.zipcodewilmington.streams.conversions; +import com.zipcodewilmington.streams.StreamMap; import com.zipcodewilmington.streams.anthropoid.Person; import com.zipcodewilmington.streams.anthropoid.PersonFactory; @@ -25,12 +26,15 @@ public ArrayConverter(int collectionSize) { //TODO public List toList() { - return null; + + return Arrays.asList(super.objectSequence); + } //TODO public Stream toStream() { - return null; + return Arrays.stream(super.objectSequence); + } @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..fa11329 100644 --- a/src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java +++ b/src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java @@ -29,11 +29,16 @@ public List toList() { //TODO public Stream toStream() { - return null; + Stream peps = objectSequence + .stream(); + return peps; } //TODO public Person[] toArray() { - return null; + Person[] nuevo = objectSequence + .stream() + .toArray(Person[]::new); + return nuevo; } } diff --git a/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java b/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java index 159d048..6405ac0 100644 --- a/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java +++ b/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java @@ -25,16 +25,23 @@ public StreamConverter(int collectionSize) { // TODO public List toList() { - return null; + List po = personList; + + return po; } // TODO public Stream toStream() { - return null; + Stream po = personList + .stream(); + return po; } // TODO public Person[] toArray() { - return null; + Person[] po = personList + .stream() + .toArray(Person[]::new); + return po; } } From 2c012afde105c2caf8efdfc4f5425e493b34c10f Mon Sep 17 00:00:00 2001 From: laura Date: Sun, 1 Aug 2021 14:37:59 -0400 Subject: [PATCH 2/3] other ways oof doing them --- .../streams/conversions/ListConverter.java | 17 +++++++----- .../streams/conversions/StreamConverter.java | 27 ++++++++++++------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java b/src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java index fa11329..891b9f9 100644 --- a/src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java +++ b/src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java @@ -29,16 +29,19 @@ public List toList() { //TODO public Stream toStream() { - Stream peps = objectSequence - .stream(); - return peps; + return super.objectSequence.stream(); +// Stream peps = objectSequence +// .stream(); +// return peps; } //TODO public Person[] toArray() { - Person[] nuevo = objectSequence - .stream() - .toArray(Person[]::new); - return nuevo; + return super.objectSequence.toArray(new Person[0]); } +// Person[] nuevo = objectSequence +// .stream() +// .toArray(Person[]::new); +// return nuevo; +// } } diff --git a/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java b/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java index 6405ac0..e15076d 100644 --- a/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java +++ b/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java @@ -25,23 +25,30 @@ public StreamConverter(int collectionSize) { // TODO public List toList() { - List po = personList; - - return po; + return personList; } +// List po = personList; +// +// return po; +// } // TODO public Stream toStream() { - Stream po = personList - .stream(); - return po; + return personList.stream(); } +// Stream po = personList +// .stream(); +// return po; +// } // TODO public Person[] toArray() { - Person[] po = personList - .stream() - .toArray(Person[]::new); - return po; + + return personList.toArray(new Person[0]); } +// Person[] po = personList +// .stream() +// .toArray(Person[]::new); +// return po; +// } } From a8a0bab5f90b0ce98146b85ba02deefdff451f2e Mon Sep 17 00:00:00 2001 From: laura Date: Sun, 1 Aug 2021 16:05:24 -0400 Subject: [PATCH 3/3] done --- .../streams/StreamFilter.java | 40 ++++++++++++++++--- .../zipcodewilmington/streams/StreamMap.java | 13 ++++-- 2 files changed, 45 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/streams/StreamFilter.java b/src/main/java/com/zipcodewilmington/streams/StreamFilter.java index d8b89ae..df6c81b 100644 --- a/src/main/java/com/zipcodewilmington/streams/StreamFilter.java +++ b/src/main/java/com/zipcodewilmington/streams/StreamFilter.java @@ -5,10 +5,14 @@ import com.zipcodewilmington.streams.tools.RandomUtils; import com.zipcodewilmington.streams.tools.StringUtils; +import java.lang.reflect.Array; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; + + /** * Created by leon on 5/2/17. */ @@ -20,7 +24,8 @@ 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().createPersonStream(100), RandomUtils.createCharacter('A', 'Z')); + } /** @@ -55,7 +60,12 @@ 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 list = new ArrayList<>(); + personStream + .filter(p -> p.getName().startsWith(this.startingCharacter)) + .collect(Collectors.toList()); + return list; + } @@ -64,16 +74,30 @@ public List toListMultiLine() { * @return a list of person objects whose name starts with `this.startingCharacter` */ //TODO public List toListOneLine() { - return null; + + return personStream.filter(p -> p.getName().startsWith(this.startingCharacter)).collect(Collectors.toList()); + } +// ----------------------------------THIS ALSO WORKS------------------------------------------- +// +// List list = personStream +// .filter(person -> startingCharacter.equals(person.getName().charAt(0))) +// .collect(Collectors.toList()); +// +// return list; +// +// } + /** * Using one-line lambda syntax * @return an array of person object whose name starts with `this.startingCharacter` */ //TODO public Person[] toArrayOneLine() { - return null; + Person[] pep = personStream.filter(person -> person.getName().startsWith(this.startingCharacter)).toArray(Person[]::new); + + return pep; } @@ -82,7 +106,13 @@ public Person[] toArrayOneLine() { * @return an array of person object whose name starts with `this.startingCharacter` */ //TODO public Person[] toArrayMultiLine() { - return null; + + Person[] pep = personStream + .filter(person -> person.getName().startsWith(this.startingCharacter)) + .toArray(Person[]::new); + return pep; + + } } diff --git a/src/main/java/com/zipcodewilmington/streams/StreamMap.java b/src/main/java/com/zipcodewilmington/streams/StreamMap.java index cf35024..2302ffd 100644 --- a/src/main/java/com/zipcodewilmington/streams/StreamMap.java +++ b/src/main/java/com/zipcodewilmington/streams/StreamMap.java @@ -18,7 +18,10 @@ public class StreamMap { * @return - a Stream of single characters */ //TODO public static Stream letters(String someWord) { - return null; + return Arrays.stream(someWord.split("")); +// String[] characters = someWord.split(""); +// +// return Stream.of(characters); } /** @@ -26,7 +29,8 @@ 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 Arrays.stream(someWords).map(StreamMap::letters); +// return Stream.of(someWords).map(w -> letters(w)); } /** @@ -34,6 +38,9 @@ public static Stream> wordsMap(String... someWords) { * @return - a Stream of several Streams of single characters */ //TODO public static Stream wordsFlatMap(String... stringArray) { - return null; + return Arrays.stream(stringArray).flatMap(StreamMap::letters); + +// return Stream.of(stringArray).sorted().flatMap((w -> letters(w))); + } } \ No newline at end of file