75 * The iterators returned by this class's {@link #iterator() iterator} and
76 * {@link #listIterator(int) listIterator} methods are <em>fail-fast</em>:
77 * if the list is structurally modified at any time after the iterator is
78 * created, in any way except through the iterator's own
79 * {@link ListIterator#remove() remove} or
80 * {@link ListIterator#add(Object) add} methods, the iterator will throw a
81 * {@link ConcurrentModificationException}. Thus, in the face of
82 * concurrent modification, the iterator fails quickly and cleanly, rather
83 * than risking arbitrary, non-deterministic behavior at an undetermined
84 * time in the future.
85 *
86 * <p>Note that the fail-fast behavior of an iterator cannot be guaranteed
87 * as it is, generally speaking, impossible to make any hard guarantees in the
88 * presence of unsynchronized concurrent modification. Fail-fast iterators
89 * throw {@code ConcurrentModificationException} on a best-effort basis.
90 * Therefore, it would be wrong to write a program that depended on this
91 * exception for its correctness: <i>the fail-fast behavior of iterators
92 * should be used only to detect bugs.</i>
93 *
94 * <p>This class is a member of the
95 * <a href="{@docRoot}/java/util/package-summary.html#CollectionsFramework">
96 * Java Collections Framework</a>.
97 *
98 * @param <E> the type of elements in this list
99 *
100 * @author Josh Bloch
101 * @author Neal Gafter
102 * @see Collection
103 * @see List
104 * @see LinkedList
105 * @see Vector
106 * @since 1.2
107 */
108 public class ArrayList<E> extends AbstractList<E>
109 implements List<E>, RandomAccess, Cloneable, java.io.Serializable
110 {
111 private static final long serialVersionUID = 8683452581122892189L;
112
113 /**
114 * Default initial capacity.
115 */
|
75 * The iterators returned by this class's {@link #iterator() iterator} and
76 * {@link #listIterator(int) listIterator} methods are <em>fail-fast</em>:
77 * if the list is structurally modified at any time after the iterator is
78 * created, in any way except through the iterator's own
79 * {@link ListIterator#remove() remove} or
80 * {@link ListIterator#add(Object) add} methods, the iterator will throw a
81 * {@link ConcurrentModificationException}. Thus, in the face of
82 * concurrent modification, the iterator fails quickly and cleanly, rather
83 * than risking arbitrary, non-deterministic behavior at an undetermined
84 * time in the future.
85 *
86 * <p>Note that the fail-fast behavior of an iterator cannot be guaranteed
87 * as it is, generally speaking, impossible to make any hard guarantees in the
88 * presence of unsynchronized concurrent modification. Fail-fast iterators
89 * throw {@code ConcurrentModificationException} on a best-effort basis.
90 * Therefore, it would be wrong to write a program that depended on this
91 * exception for its correctness: <i>the fail-fast behavior of iterators
92 * should be used only to detect bugs.</i>
93 *
94 * <p>This class is a member of the
95 * <a href="{@docRoot}/java.base/java/util/package-summary.html#CollectionsFramework">
96 * Java Collections Framework</a>.
97 *
98 * @param <E> the type of elements in this list
99 *
100 * @author Josh Bloch
101 * @author Neal Gafter
102 * @see Collection
103 * @see List
104 * @see LinkedList
105 * @see Vector
106 * @since 1.2
107 */
108 public class ArrayList<E> extends AbstractList<E>
109 implements List<E>, RandomAccess, Cloneable, java.io.Serializable
110 {
111 private static final long serialVersionUID = 8683452581122892189L;
112
113 /**
114 * Default initial capacity.
115 */
|