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/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
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..891b9f9 100644
--- a/src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java
+++ b/src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java
@@ -29,11 +29,19 @@ public List toList() {
//TODO
public Stream toStream() {
- return null;
+ return super.objectSequence.stream();
+// Stream peps = objectSequence
+// .stream();
+// return peps;
}
//TODO
public Person[] toArray() {
- return null;
+ 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 159d048..e15076d 100644
--- a/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java
+++ b/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java
@@ -25,16 +25,30 @@ public StreamConverter(int collectionSize) {
// TODO
public List toList() {
- return null;
+ return personList;
}
+// List po = personList;
+//
+// return po;
+// }
// TODO
public Stream toStream() {
- return null;
+ return personList.stream();
}
+// Stream po = personList
+// .stream();
+// return po;
+// }
// TODO
public Person[] toArray() {
- return null;
+
+ return personList.toArray(new Person[0]);
}
+// Person[] po = personList
+// .stream()
+// .toArray(Person[]::new);
+// return po;
+// }
}