People.java 1.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package com.example.demo;
  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import java.util.Iterator;
  5. import java.util.List;
  6. /**
  7. * @author leon on 07/01/2019.
  8. */
  9. abstract public class People<PersonType extends Person> implements Iterable<PersonType> {
  10. private final List<PersonType> list;
  11. public People(List<PersonType> list) {
  12. this.list = list;
  13. }
  14. public People(PersonType... persons) {
  15. this(new ArrayList<>(Arrays.asList(persons)));
  16. }
  17. void add(PersonType person) {
  18. list.add(person);
  19. }
  20. void remove(PersonType person) {
  21. list.remove(person);
  22. }
  23. int size() {
  24. return list.size();
  25. }
  26. void clear() {
  27. list.clear();
  28. }
  29. void addAll(Iterable<? extends PersonType> iterable) {
  30. iterable.forEach(person -> list.add(person));
  31. }
  32. PersonType findByid(Long id) {
  33. return list
  34. .stream()
  35. .filter(person -> person.getId().equals(id))
  36. .findFirst()
  37. .get();
  38. }
  39. @Override
  40. public Iterator<PersonType> iterator() {
  41. return list.iterator();
  42. }
  43. }