Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import static java.util.Arrays.asList;
- import java.util.ArrayList;
- import java.util.Deque;
- import java.util.Iterator;
- import java.util.LinkedList;
- import java.util.List;
- import java.util.function.Predicate;
- class Foo {
- static <T> void foo(List<T> list, Predicate<T> predicate) {
- Deque<T> stack = new LinkedList<>();
- Iterator<T> iterator = list.iterator();
- T element;
- while (!predicate.test(element = iterator.next())) {
- stack.addFirst(element);
- iterator.remove();
- }
- stack.forEach(list::add);
- }
- public static void main(String[] args) {
- ArrayList<Integer> arrayList = new ArrayList<>(asList(4, 3, 2, 1, 5, 6, 7, 8, 9, 10));
- LinkedList<Integer> linkedList = new LinkedList<>(asList(4, 3, 2, 1, 5, 6, 7, 8, 9, 10));
- foo(arrayList, x -> x > 4);
- foo(linkedList, x -> x > 4);
- System.out.println(arrayList); // [5, 6, 7, 8, 9, 10, 1, 2, 3, 4]
- System.out.println(linkedList); // [5, 6, 7, 8, 9, 10, 1, 2, 3, 4]
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment