StreamConverter.java 1.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package com.zipcodewilmington.streams.conversions;
  2. import com.zipcodewilmington.streams.anthropoid.Person;
  3. import com.zipcodewilmington.streams.anthropoid.PersonFactory;
  4. import java.util.List;
  5. import java.util.stream.Collectors;
  6. import java.util.stream.Stream;
  7. /**
  8. * Created by leon on 5/25/17.
  9. */
  10. public final class StreamConverter extends PersonConversionAgent<Stream<Person>> {
  11. private final List<Person> personList;
  12. public StreamConverter(Stream<Person> people) {
  13. super(people);
  14. this.personList = super.objectSequence.collect(Collectors.toList());
  15. }
  16. public StreamConverter(int collectionSize) {
  17. this(PersonFactory.createPersonStream(collectionSize));
  18. /** Implementation of adapter pattern for testing purposes
  19. * @param collectionSize - count of Stream to be generated */
  20. }
  21. // TODO
  22. public List<Person> toList() {
  23. return this.personList;
  24. }
  25. // TODO
  26. public Stream<Person> toStream() {
  27. return this.personList.parallelStream();
  28. }
  29. // TODO
  30. public Person[] toArray() {
  31. return toStream().toArray(Person[]::new);
  32. }
  33. }