Tato metoda vrací list fixní délky. To znamené, že jakýkoliv pokus o změnu velikosti tohoto listu skončí chybou UnsupportedOperationException.
Ať už se jedná o odebrání prvku,
List list = Arrays.asList("a", "b", "c", "b"); ListIterator iterator = list.listIterator(); while (iterator.hasNext()) { if (iterator.next().equals("b")) { iterator.remove(); } }
nebo o přidání prvku,
List list = Arrays.asList("a", "b", "c", "b"); ListIterator iterator = list.listIterator(); while (iterator.hasNext()) { if (iterator.next().equals("b")) { iterator.add("bbb"); } }
dostaneme následující chybu.
Exception in thread "main" java.lang.UnsupportedOperationException at java.util.AbstractList.add(AbstractList.java:148) at java.util.AbstractList$ListItr.add(AbstractList.java:438) ...
V případě, že chceme vytvořil list s proměnnou velikostí, můžeme použít parametrický konstruktor ArrayList(kolekce).
List list = new ArrayList(Arrays.asList("a", "b", "c", "b")); ListIterator iterator = list.listIterator(); while (iterator.hasNext()) { if (iterator.next().equals("b")) { iterator.remove(); } }
Výsledkem je následující list: [a, c].