| Adding Elements | ArrayList ⇔ array |
| ArrayIndexOutOfBoundsException | Thread Safety |
| GrowingArrayList | Generics |
| Removing Elements | Learning More |
| Trimming | Links |
// adding an element to the middle of a list arrayList.add( i, object ); // adding an element to the end of a list arrayList.add( object );actually inserts, sliding existing elements up to make room. As you might guess, this is an expensive operation when there are many elements.
With an ordinary ArrayList you can’t set elements until you have grown the ArrayList sufficiently first with add. If you try it, you will get an ArrayIndexOutOfBoundsException or IndexOutOfBoundsException.
If you want an ArrayList that grows automatically when you use a set index too big, here is the complete source code for it.
When I am absolutely sure there are no new elements coming for the ArrayList, I typically use toArray and use the much faster raw array from then on. I think of ArrayLists mainly as tools to build a Collections, and I think of arrays as tools to process them. However, most other programmers are not nearly so keen as I am on naked arrays. They prefer to do everything with ArrayLists. when you use generics and for:each it is relatively easy to flip back and forth between each style.
ArrayList.add or ArrayList. addAll will not discard duplicates. To do that you would need to check with ArrayList.contains before adding, or create a HashSet which naturally dedups, then use ArrayList.addAll to effectively convert it to an ArrayList.
// making an ArrayList threadsafe ArrayList a = new ArrayList( 100 ); Collection threadSafeList = Collections.synchronizedCollection( a );
![]() |
and suggestions to improve this page to Roedy Green : | ||
| Canadian Mind Products | |||
| mindprod.com IP:[65.110.21.43] | |||
| Your face IP:[38.103.63.18] | The information on this page is for non-military use only. | ||
| You are visitor number 97,145. | Military use includes use by defence contractors. | ||
| You can get a fresh copy of this page from: | or possibly from your local J: drive (Java virtual drive/Mindprod website mirror) | ||
| http://mindprod.com/jgloss/arraylist.html | J:\mindprod\jgloss\arraylist.html | ||