File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Beginning Java and the fly likes Multiple ArrayList Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Multiple ArrayList" Watch "Multiple ArrayList" New topic
Author

Multiple ArrayList

albert kao
Ranch Hand

Joined: Feb 04, 2010
Posts: 239
How to use multiple ArrayLists?
My test program has Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.get(ArrayList.java:324)
at ArrayListTest.main(ArrayListTest.java:9)
Kemal Sokolovic
Bartender

Joined: Jun 19, 2010
Posts: 825
    
    5

Did you check the API for the constructor you are invoking at line 5? It says:

public ArrayList(int initialCapacity)
Constructs an empty list with the specified initial capacity.


So, basically, until you add values in your list, the size of the list is 0. Hence, statement inside for loop is not executed, and a.get(a.size() - 1) is actually a.get(-1), and that's not valid index so you get an exception.


The quieter you are, the more you are able to hear.
Tony Docherty
Bartender

Joined: Aug 07, 2007
Posts: 1939
    
  28
Specifying the initial capacity in the constructor doesn't mean the list will have that many elements in it, it just specifies the maximum number of elements that can be added before the backing array must be resized.
Therefore, the ArrayList will be constructed with a backing array of length 5 but the array will be empty and the ArrayList size will be 0 and so the for loop won't add any elements and hence your attempt to get the last element (a.size()-1) fails as the ArrayList is empty.
albert kao
Ranch Hand

Joined: Feb 04, 2010
Posts: 239
I modify my test program so that it will store the integer from 0 to 4.
However, the output is
a1 [] size 5 []
I expect to see integer 1 and 4 but get "[]".
How to fix this program?

Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 36478
    
  16
Try creating an array list and printing it out. You find you get a pair of square brackets, with all the elements inside. Maybe you have got empty lists from those get() calls, and they simply print out the pair of square brackets. If you look for the array lists’s toString method, you find this, which tells you about the square brackets. It doesn’t say that an empty List prints as [], but you can probably validate that with
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Multiple ArrayList
 
Similar Threads
Can someone please tell me why I get stuck in this while loop?
HashSet question
Question reg. Pass By Value
Autoboxing question
Insert method....