変更されたときにのみ実際にコピーを作成する List copy impl を知っている人はいますか? 読み取りが支配的なユースケースの場合、(編集:可能性があります)よりも効率的ですnew ArrayList<>(oldList)
。CopyOnWriteArrayList
要素を0回または1回だけコピーすることを除いて、似ています。
例:
List list = Lists.lazyCopy(oldList); // no copy
list.get(0); // delegate to oldList
list.set(0, null); // make a copy, mutate the copy
list.get(0); // read from copy
list.set(0, null); // mutate the copy, don't copy again