void () { final ArrayList<Integer> list1 = new ArrayList<>(Arrays.asList(arr1)); final Iterator<Integer> it1 = list1.iterator(); while (it1.hasNext()) { it1.next(); } it1.remove(); // ok, removes last assertFalse(list1.contains(5)); list1.add(5); final ArrayList<Integer> list2 = new ArrayList<>(Arrays.asList(arr2)); final ArrayList<Integer> list3 = new ArrayList<>(Arrays.asList(arr3)); final Iterator<Integer> iterator = compose(Arrays.asList(list1.iterator(), list2.iterator(), list3.iterator())); while (iterator.hasNext()) { iterator.next(); } iterator.remove(); assertFalse(list3.contains(105)); }