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].