Copyonwritearray, record it.
Package java.util.concurrent;//You're not mistaken, it's this bag.
Private transient volatile object[] array;//initialize array public copyonwritearraylist () {//constructor, initialize SetArray (new object[0] ); } final void SetArray (object[] a) { array = A; } Public boolean Add (E e) { final reentrantlock lock = This.lock; Lock.lock (); try { object[] elements = GetArray (); int len = elements.length; object[] newelements = arrays.copyof (elements, Len + 1); Newelements[len] = e; SetArray (newelements); return true; } finally { lock.unlock (); } } Final object[] GetArray () { return array; }
Public E get (int index) {//Get a single Array object return get (GetArray (), index); }
Private E get (object[] A, int index) { return (E) a[index]; }
Add when the yoke, first copy, then assign value, get when the time is not locked, (resulting in multi-threaded when may not get the nearest value)
Copyonwritearray Unsafe (Array) collection under concurrent packages