次のコードがあります。
ArrayList<String> words;
words = new ArrayList<String>();
words.add("is");
words.add("us");
ListIterator<String> it;
it = words.listIterator();
it.add("##");
System.out.println(words);
it.next();
it.next();
it.previous();
it.set("##");
System.out.println(words);
出力は になると## us ##思いますが、プログラムを実行すると が返されます## is ##。これは、アイテムをそれ自体に追加するのではなく、にListIteratorアイテムを追加することに関係していると思います。ArrayListArrayList
プログラムがこのように動作するのはなぜですか?