import java.util.*; /** JEP 431 (final): SequencedCollection, SequencedSet, SequencedMap. */ public class SequencedCollectionsDemo { public static void main(String[] args) { List list = new ArrayList<>(List.of("a", "b", "c")); System.out.println("getFirst/getLast: " + list.getFirst() + " " + list.getLast()); System.out.println("reversed view : " + list.reversed()); list.addFirst("z"); list.removeLast(); System.out.println("addFirst+removeLast: " + list); LinkedHashSet set = new LinkedHashSet<>(List.of(1, 2, 3)); System.out.println("LinkedHashSet reversed: " + set.reversed()); LinkedHashMap map = new LinkedHashMap<>(); map.put("x", 1); map.put("y", 2); map.put("z", 3); System.out.println("firstEntry/lastEntry : " + map.firstEntry() + " " + map.lastEntry()); map.putFirst("w", 0); System.out.println("putFirst : " + map); System.out.println("reversed map : " + map.reversed()); // reversed() is a view, not a copy List src = new ArrayList<>(List.of("1", "2")); List rev = src.reversed(); src.add("3"); System.out.println("view sees add : " + rev); try { List.of(1, 2).addFirst(0); } catch (UnsupportedOperationException e) { System.out.println("immutable list : UnsupportedOperationException"); } try { new HashSet<>(List.of(1)).getClass().getMethod("getFirst"); } catch (NoSuchMethodException e) { System.out.println("HashSet : no getFirst (unordered)"); } } }