Guest User

Untitled

a guest
Jul 16th, 2015
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.95 KB | None | 0 0
  1. import static java.util.Arrays.asList;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Deque;
  5. import java.util.Iterator;
  6. import java.util.LinkedList;
  7. import java.util.List;
  8. import java.util.function.Predicate;
  9.  
  10. class Foo {
  11.     static <T> void foo(List<T> list, Predicate<T> predicate) {
  12.         Deque<T> stack = new LinkedList<>();
  13.         Iterator<T> iterator = list.iterator();
  14.         T element;
  15.         while (!predicate.test(element = iterator.next())) {
  16.             stack.addFirst(element);
  17.             iterator.remove();
  18.         }
  19.         stack.forEach(list::add);
  20.     }
  21.    
  22.     public static void main(String[] args) {
  23.         ArrayList<Integer> arrayList = new ArrayList<>(asList(4, 3, 2, 1, 5, 6, 7, 8, 9, 10));
  24.         LinkedList<Integer> linkedList = new LinkedList<>(asList(4, 3, 2, 1, 5, 6, 7, 8, 9, 10));
  25.         foo(arrayList, x -> x > 4);
  26.         foo(linkedList, x -> x > 4);
  27.         System.out.println(arrayList); // [5, 6, 7, 8, 9, 10, 1, 2, 3, 4]
  28.         System.out.println(linkedList); // [5, 6, 7, 8, 9, 10, 1, 2, 3, 4]
  29.     }
  30. }
Advertisement
Add Comment
Please, Sign In to add comment