Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.90 KB | None | 0 0
  1. public class MyArrayList<T> {
  2.     private T[] elements;
  3.     private int count;
  4.  
  5.     Stream<T> stream() {
  6.         return new MyStream();
  7.     }
  8.  
  9.     public MyArrayList() {
  10.         this.elements = (T[]) new Object[10];
  11.     }
  12.  
  13.     public void add(T t) {
  14.         elements[count++] = t;
  15.     }
  16.  
  17.     public List<T> copyList() {
  18.         List<T> list = new ArrayList<>();
  19.         for (T t :
  20.                 elements) {
  21.             if (t != null) {
  22.                 list.add(t);
  23.             }
  24.         }
  25.         return list;
  26.     }
  27.  
  28.     public class MyStream implements Stream<T> {
  29.  
  30.         @Override
  31.         public Stream<T> filter(Predicate<? super T> predicate) {
  32.             List<T> list = copyList();
  33.             List<T> resList = new ArrayList<>();
  34.             for (T t :
  35.                     list) {
  36.                 if (predicate.test(t)) {
  37.                     resList.add(t);
  38.                 }
  39.             }
  40.             return resList.stream();
  41.         }
  42.  
  43.         @Override
  44.         public <R> Stream<R> map(Function<? super T, ? extends R> mapper) {
  45.             List<T> list = copyList();
  46.             List<R> resList = new ArrayList<>();
  47.             for (T t :
  48.                     list) {
  49.                 resList.add(mapper.apply(t));
  50.             }
  51.             return resList.stream();
  52.         }
  53.  
  54.         @Override
  55.         public void forEach(Consumer<? super T> action) {
  56.             List<T> list = copyList();
  57.             for (T t :
  58.                     list) {
  59.                 action.accept(t);
  60.             }
  61.         }
  62.  
  63.         @Override
  64.         public IntStream mapToInt(ToIntFunction<? super T> mapper) {
  65.             return null;
  66.         }
  67.  
  68.         @Override
  69.         public LongStream mapToLong(ToLongFunction<? super T> mapper) {
  70.             return null;
  71.         }
  72.  
  73.         @Override
  74.         public DoubleStream mapToDouble(ToDoubleFunction<? super T> mapper) {
  75.             return null;
  76.         }
  77.  
  78.         @Override
  79.         public <R> Stream<R> flatMap(Function<? super T, ? extends Stream<? extends R>> mapper) {
  80.             return null;
  81.         }
  82.  
  83.         @Override
  84.         public IntStream flatMapToInt(Function<? super T, ? extends IntStream> mapper) {
  85.             return null;
  86.         }
  87.  
  88.         @Override
  89.         public LongStream flatMapToLong(Function<? super T, ? extends LongStream> mapper) {
  90.             return null;
  91.         }
  92.  
  93.         @Override
  94.         public DoubleStream flatMapToDouble(Function<? super T, ? extends DoubleStream> mapper) {
  95.             return null;
  96.         }
  97.  
  98.         @Override
  99.         public Stream<T> distinct() {
  100.             return null;
  101.         }
  102.  
  103.         @Override
  104.         public Stream<T> sorted() {
  105.             return null;
  106.         }
  107.  
  108.         @Override
  109.         public Stream<T> sorted(Comparator<? super T> comparator) {
  110.             return null;
  111.         }
  112.  
  113.         @Override
  114.         public Stream<T> peek(Consumer<? super T> action) {
  115.             return null;
  116.         }
  117.  
  118.         @Override
  119.         public Stream<T> limit(long maxSize) {
  120.             return null;
  121.         }
  122.  
  123.         @Override
  124.         public Stream<T> skip(long n) {
  125.             return null;
  126.         }
  127.  
  128.         @Override
  129.         public void forEachOrdered(Consumer<? super T> action) {
  130.  
  131.         }
  132.  
  133.         @Override
  134.         public Object[] toArray() {
  135.             return new Object[0];
  136.         }
  137.  
  138.         @Override
  139.         public <A> A[] toArray(IntFunction<A[]> generator) {
  140.             return null;
  141.         }
  142.  
  143.         @Override
  144.         public T reduce(T identity, BinaryOperator<T> accumulator) {
  145.             return null;
  146.         }
  147.  
  148.         @Override
  149.         public Optional<T> reduce(BinaryOperator<T> accumulator) {
  150.             return Optional.empty();
  151.         }
  152.  
  153.         @Override
  154.         public <U> U reduce(U identity, BiFunction<U, ? super T, U> accumulator, BinaryOperator<U> combiner) {
  155.             return null;
  156.         }
  157.  
  158.         @Override
  159.         public <R> R collect(Supplier<R> supplier, BiConsumer<R, ? super T> accumulator, BiConsumer<R, R> combiner) {
  160.             return null;
  161.         }
  162.  
  163.         @Override
  164.         public <R, A> R collect(Collector<? super T, A, R> collector) {
  165.             return null;
  166.         }
  167.  
  168.         @Override
  169.         public Optional<T> min(Comparator<? super T> comparator) {
  170.             return Optional.empty();
  171.         }
  172.  
  173.         @Override
  174.         public Optional<T> max(Comparator<? super T> comparator) {
  175.             return Optional.empty();
  176.         }
  177.  
  178.         @Override
  179.         public long count() {
  180.             return 0;
  181.         }
  182.  
  183.         @Override
  184.         public boolean anyMatch(Predicate<? super T> predicate) {
  185.             return false;
  186.         }
  187.  
  188.         @Override
  189.         public boolean allMatch(Predicate<? super T> predicate) {
  190.             return false;
  191.         }
  192.  
  193.         @Override
  194.         public boolean noneMatch(Predicate<? super T> predicate) {
  195.             return false;
  196.         }
  197.  
  198.         @Override
  199.         public Optional<T> findFirst() {
  200.             return Optional.empty();
  201.         }
  202.  
  203.         @Override
  204.         public Optional<T> findAny() {
  205.             return Optional.empty();
  206.         }
  207.  
  208.         @Override
  209.         public Iterator<T> iterator() {
  210.             return null;
  211.         }
  212.  
  213.         @Override
  214.         public Spliterator<T> spliterator() {
  215.             return null;
  216.         }
  217.  
  218.         @Override
  219.         public boolean isParallel() {
  220.             return false;
  221.         }
  222.  
  223.         @Override
  224.         public Stream<T> sequential() {
  225.             return null;
  226.         }
  227.  
  228.         @Override
  229.         public Stream<T> parallel() {
  230.             return null;
  231.         }
  232.  
  233.         @Override
  234.         public Stream<T> unordered() {
  235.             return null;
  236.         }
  237.  
  238.         @Override
  239.         public Stream<T> onClose(Runnable closeHandler) {
  240.             return null;
  241.         }
  242.  
  243.         @Override
  244.         public void close() {
  245.  
  246.         }
  247.     }
  248. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement