Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member
There are many situations in applications where you need to manage ordered collections of data. That means that once you add data to the collection, it stays in the same order and you can reference the items in the data collection by their index position. This simple array in Java is useful but it has a downside, it's not resizable at runtime. And so Java provides a special class for resizable arrays, it's named array list. You declare an array list as an instance of a class, so it's a complex object.
I'll start in the empty main method of this project ArrayList. And I'll begin by typing the name of the class ArrayList. Remembering that Java is case- sensitive, ArrayList is spelled with an uppercase A and an uppercase L. The ArrayList class is not a member of the java.lang package. So you must provide an import for it at the top of your code. After typing in the name of the class, press Ctrl+ Spacebar and Eclipse will add the import for you. Eclipse also adds a little bit of additional notation after the class name.
The less than and greater than characters are sometimes known as the diamond operator. And in Java the diamond operator is used to declare something called a generic. A generic is a special data type, and in this context it means this array list will contain items only of a particular data type. It is possible to create an array list of mixed data, but most of the time we don't use it for that purpose. Most of the time array lists and other collections contain items all of the same data type. You declare which data type by simply setting the data type between the less than and greater than characters, so this array list could contain integers or can contain shorts or, as I'm going to do here, it could contain strings or any other complex object.
So that's the complete data type including the generic declaration. This will be an array list of strings. Next as with all declarations I'll provide the variable name I'll call it list, and then I'll initialize it using the constructor method. I'll once again type in the name of the class, this will be a constructor method call, and then I'll press control space again and I'll choose the version of the array list constructor method that doesn't receive any arguments. Eclipse looks at the original declaration, and says you said this was going to be an array list of strings, so when I call the constructor method, I'm going to use that same string generic declaration and that's correct, I'll complete the declaration and initialization with the semicolon.
Now I can add items to the list. I said it was going to contain strings, so anything I pass in must either be a string or be translatable to a string. To add items to the array list call the add method. There are two versions of the add method, you can either pass in a value and it will be appended to the end of the list or you can pass in an integer, an index, and the value and then the item will be added in the position that you determine. I am just going to use the simple add version that accepts the string and I am going to add three items to the list, California, Oregon and Washington.
I'm going to output the list to the console. I'll use System.out.printline, and I am just going to add the list object. The list object will be serialized into a string for me because its two string method handles that operation automatically. I'll save and run the application, and I see my items displayed in a comma delimited list wrapped in square brackets and that's how an array list is translated automatically.
Now I'm going to add another item. I'll call list.add and I'll just keep on moving north, I'll add Alaska, and then I'll copy and paste my print line command and run the application again. And I see that I've successfully added an item at runtime, something I wouldn't have been able to do if this were a simple array. You can add items to an array list at runtime and you can also remove items. In order to remove items, you can provide either the index position or an object reference that matches.
In the case of strings, you can remove items simply by providing a matching string. I am going to remove the first item in the list when I type .remove and press Ctrl+ Spacebar, I see that there are these two versions of the remove method. It's overloaded. And I'll use the first version. I'll provide an index value of zero meaning remove the first item. I once again copy and paste my print line command and I'll output the list. And I'll see that after removing the first item California I'm left with a list of three items starting with Oregon.
Next I'm going to get an item in a particular position in the list. I'll declare a string variable named state. In order to get an item from the list, you use the method list.get. You provide an integer value. So I'm going to provide a value of one remembering that an array list just like a simple array starts its numbering at Zero, this would mean get the second item in the list. I once again paste in my print line command and I'll change it. I'll start with the literal "The second state is" and then I'll append state.
I'll save and run, and I get the second state as Washington and that's correct. You can also find an item in the list. That is, get its index position by passing an object reference or in the case of strings by passing in the string value. So I am going to declare an integer variable named pos, and I'll get its value by list.indexOf an I'll pass in Alaska. And then I'll once again use a print line command and l'll output Alaska is at position and I'll append pos.
I'll run the application and I see Alaska is at position 2, which taking into consideration the zero-based numbering is at position 2, Oregon position zero, Washington position one, Alaska position 2. Take a look at the documentation of the array list for more information about how you can use this powerful class. I'll double click the name of the class in my code and go to Dynamic Help and click the link for its javadocs, expand the help view and then go to the method list.
You'll see that there are methods in they are not just for adding removing and searching, but also for getting the size of the array list and managing how it uses its memory. Use array list to manage ordered collections of data, or you need to resize the collection at runtime, and where you need to be able to add remove and search for items, it's an incredibly powerful class that does much more than the simple array.
Get unlimited access to all courses for just $25/month.Become a member
82 Video lessons · 97255 Viewers
61 Video lessons · 84534 Viewers
71 Video lessons · 68734 Viewers
56 Video lessons · 101220 Viewers
Access exercise files from a button right under the course name.
Search within course videos and transcripts, and jump right to the results.
Remove icons showing you already watched videos if you want to start over.
Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.
Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.
Your file was successfully uploaded.