Interface PersistentList<T>

  • Type Parameters:
    T - The type of values.
    All Superinterfaces:
    Collection<T>, Iterable<T>, List<T>
    All Known Implementing Classes:
    PersistentLinkedList

    @Immutable(containerOf="T")
    public interface PersistentList<T>
    extends List<T>
    Interface for persistent lists. A persistent data structure is immutable, but provides cheap copy-and-write operations. Thus all write operations ({with(Object), {without(Object)}) will not modify the current instance, but return a new instance instead.

    All modifying operations inherited from List are not supported and will always throw UnsupportedOperationException.

    Instances of this interface are thread-safe as long as published safely.