Interface UnmodCollection<E>

    • Method Detail

      • add

        @Deprecated
        default boolean add​(E e)
        Deprecated.
        Not allowed - this is supposed to be unmodifiable
        Specified by:
        add in interface Collection<E>
      • addAll

        @Deprecated
        default boolean addAll​(@NotNull
                               @NotNull Collection<? extends E> c)
        Deprecated.
        Not allowed - this is supposed to be unmodifiable
        Specified by:
        addAll in interface Collection<E>
      • clear

        @Deprecated
        default void clear()
        Deprecated.
        Not allowed - this is supposed to be unmodifiable
        Specified by:
        clear in interface Collection<E>
      • containsAll

        default boolean containsAll​(@NotNull
                                    @NotNull Collection<?> c)
        The default implementation of this method has O(this.size() + that.size()) or O(n) performance. So even though contains() is impossible to implement efficiently for Lists, containsAll() has a decent implementation (brute force would be O(this.size() * that.size()) or O(n^2) ).
        Specified by:
        containsAll in interface Collection<E>
      • iterator

        @NotNull
        @NotNull UnmodIterator<E> iterator()
        An unmodifiable iterator A one-time use, mutable, not-thread-safe way to get each value of the underling collection in turn. I experimented with various thread-safe alternatives, but the JVM is optimized around iterators so this is the lowest common denominator of collection iteration, even though iterators are inherently mutable.
        Specified by:
        iterator in interface Collection<E>
        Specified by:
        iterator in interface Iterable<E>
        Specified by:
        iterator in interface UnmodIterable<E>
      • remove

        @Deprecated
        default boolean remove​(Object o)
        Deprecated.
        Not allowed - this is supposed to be unmodifiable
        Specified by:
        remove in interface Collection<E>
      • removeAll

        @Deprecated
        default boolean removeAll​(@NotNull
                                  @NotNull Collection<?> c)
        Deprecated.
        Not allowed - this is supposed to be unmodifiable
        Specified by:
        removeAll in interface Collection<E>
      • retainAll

        @Deprecated
        default boolean retainAll​(@NotNull
                                  @NotNull Collection<?> c)
        Deprecated.
        Not allowed - this is supposed to be unmodifiable
        Specified by:
        retainAll in interface Collection<E>
      • toArray

        @NotNull
        default @NotNull Object[] toArray()
        This method goes against Josh Bloch's Item 25: "Prefer Lists to Arrays", but is provided for backwards compatibility in some performance-critical situations. If you really need an array, consider using the somewhat type-safe version of this method instead, but read the caveats first.
        Specified by:
        toArray in interface Collection<E>
      • toArray

        @NotNull
        default <T> @NotNull T[] toArray​(@NotNull
                                         @NotNull T[] as)
        This method goes against Josh Bloch's Item 25: "Prefer Lists to Arrays", but is provided for backwards compatibility in some performance-critical situations. If you need to create an array (you almost always do) then the best way to use this method is: MyThing[] things = col.toArray(new MyThing[coll.size()]); Calling this method any other way causes unnecessary work to be done - an extra memory allocation and potential garbage collection if the passed array is too small, extra effort to fill the end of the array with nulls if it is too large.
        Specified by:
        toArray in interface Collection<E>