How to use ArrayList in Java
2012-02-22 10:40
323 查看
The ArrayList class extends AbstractList and
implements the List interface. ArrayList supports
dynamic arrays that can grow as needed. In Java, standard arrays are of a fixed length. After arrays are created, they cannot grow or shrink, which means that you must know in advance how many elements an array will hold. But, sometimes, you may not know until
run time precisely how large of an array you need. To handle this situation, the collections framework defines ArrayList.
In essence, an ArrayListis a variable-length array of object references. That is, an ArrayList can
dynamically increase or decrease in size. Array lists are created with an initial size. When this size is exceeded, the collection is automatically enlarged. When objects are removed, the array may be shrunk.
ArrayList has the constructors shown here:
The first constructor builds an empty array list. The second constructor builds an array list that is initialized with the elements of the collection c.
The third constructor builds an array list that has the specified initial capacity. The capacity
is the size of the underlying array that is used to store the elements. The capacity grows automatically as elements are added to an array list.
The following program shows a simple use of ArrayList. An array list is created, and then objects
of type String are added to it. (Recall that a quoted string is translated into a String object.)
The list is then displayed. Some of the elements are removed and the list is displayed again.
The output from this program is shown here:
Notice that a1 starts out empty and grows as elements are added to it. When elements are removed,
its size is reduced.
Although the capacity of an ArrayList object increases automatically as objects are stored in
it, you can increase the capacity of an ArrayList object manually by calling ensureCapacity(
). You might want to do this if you know in advance that you will be storing many more items in the collection that it can currently hold. By increasing its capacity once, at the start, you can prevent several reallocations later. Because reallocations
are costly in terms of time, preventing unnecessary ones improves performance. The signature for ensureCapacity(
) is shown here:
void ensureCapacity(int cap)
Here, cap is the new capacity. Conversely, if you want to reduce the size of the array that underlies
anArrayList object so that it is precisely as large as the number of items that it is currently
holding, call
trimToSize( ), shown here:
Obtaining an Array from an ArrayList
When working with ArrayList, you will sometimes want to obtain an actual array that contains
the contents of the list. As explained earlier, you can do this by calling toArray( ). Several
reasons exist why you might want to convert a collection into an array such as:
• To obtain faster processing times for certain operations.
• To pass an array to a method that is not overloaded to accept a collection.
• To integrate your newer, collection-based code with legacy code that does not understand collections.
Whatever the reason, converting an ArrayList to an array is a trivial matter, as the following
program shows:
The output from the program is shown here:
The program begins by creating a collection of integers. As explained, you cannot store primitive types in a collection, so objects of type Integer are
created and stored. Next, toArray( ) is called and it obtains an array of Objects.
The contents of this array are cast to Integer, and then the values are summed.
If this tutorial doesn't answer your question, and you have a specific question, just ask an expert
here. Post your question to get a direct answer.
implements the List interface. ArrayList supports
dynamic arrays that can grow as needed. In Java, standard arrays are of a fixed length. After arrays are created, they cannot grow or shrink, which means that you must know in advance how many elements an array will hold. But, sometimes, you may not know until
run time precisely how large of an array you need. To handle this situation, the collections framework defines ArrayList.
In essence, an ArrayListis a variable-length array of object references. That is, an ArrayList can
dynamically increase or decrease in size. Array lists are created with an initial size. When this size is exceeded, the collection is automatically enlarged. When objects are removed, the array may be shrunk.
ArrayList has the constructors shown here:
ArrayList( ) ArrayList(Collection c) ArrayList(int capacity)
The first constructor builds an empty array list. The second constructor builds an array list that is initialized with the elements of the collection c.
The third constructor builds an array list that has the specified initial capacity. The capacity
is the size of the underlying array that is used to store the elements. The capacity grows automatically as elements are added to an array list.
The following program shows a simple use of ArrayList. An array list is created, and then objects
of type String are added to it. (Recall that a quoted string is translated into a String object.)
The list is then displayed. Some of the elements are removed and the list is displayed again.
// Demonstrate ArrayList. import java.util.*; class ArrayListDemo { public static void main(String args[]) { // create an array list ArrayList al = new ArrayList(); System.out.println("Initial size of al: " + al.size()); // add elements to the array list al.add("C"); al.add("A"); al.add("E"); al.add("B"); al.add("D"); al.add("F"); al.add(1, "A2"); System.out.println("Size of al after additions: " + al.size()); // display the array list System.out.println("Contents of al: " + al); // Remove elements from the array list al.remove("F"); al.remove(2); System.out.println("Size of al after deletions: " + al.size()); System.out.println("Contents of al: " + al); } }
The output from this program is shown here:
Initial size of al: 0 Size of al after additions: 7 Contents of al: [C, A2, A, E, B, D, F] Size of al after deletions: 5 Contents of al: [C, A2, E, B, D]
Notice that a1 starts out empty and grows as elements are added to it. When elements are removed,
its size is reduced.
Although the capacity of an ArrayList object increases automatically as objects are stored in
it, you can increase the capacity of an ArrayList object manually by calling ensureCapacity(
). You might want to do this if you know in advance that you will be storing many more items in the collection that it can currently hold. By increasing its capacity once, at the start, you can prevent several reallocations later. Because reallocations
are costly in terms of time, preventing unnecessary ones improves performance. The signature for ensureCapacity(
) is shown here:
void ensureCapacity(int cap)
Here, cap is the new capacity. Conversely, if you want to reduce the size of the array that underlies
anArrayList object so that it is precisely as large as the number of items that it is currently
holding, call
trimToSize( ), shown here:
void trimToSize( )
Obtaining an Array from an ArrayList
When working with ArrayList, you will sometimes want to obtain an actual array that contains
the contents of the list. As explained earlier, you can do this by calling toArray( ). Several
reasons exist why you might want to convert a collection into an array such as:
• To obtain faster processing times for certain operations.
• To pass an array to a method that is not overloaded to accept a collection.
• To integrate your newer, collection-based code with legacy code that does not understand collections.
Whatever the reason, converting an ArrayList to an array is a trivial matter, as the following
program shows:
// get array Object ia[] = al.toArray(); int sum = 0; // sum the array for(int i=0; i<ia.length; i++) sum += ((Integer) ia[i]).intValue(); System.out.println("Sum is: " + sum); } }
The output from the program is shown here:
Contents of al: [1, 2, 3, 4] Sum is: 10
The program begins by creating a collection of integers. As explained, you cannot store primitive types in a collection, so objects of type Integer are
created and stored. Next, toArray( ) is called and it obtains an array of Objects.
The contents of this array are cast to Integer, and then the values are summed.
If this tutorial doesn't answer your question, and you have a specific question, just ask an expert
here. Post your question to get a direct answer.
相关文章推荐
- How to use ConcurrentHashMap in Java - Example Tutorial and Working
- how to save a c++ object in java object and use it
- How to Convert Array to ArrayList in Java?
- How to convert ArrayList to Set in Java with Example
- How to use use zip/unzip in java?
- how to remove value in ArrayList in java
- How to use equals( ) and equalsIgnoreCase( ) in Java
- How to use CyclicBarrier in Java - Concurrency Tutorail(转)
- How to use pop-up TextBox in Java ME
- How to use SSH in Java Programmatically
- how to use MongoDB Java driver in your env
- How to use freely resizable font in in Java ME
- How to implement an ArrayList structure in Java - Tutorial
- How to use use zip/unzip in java?
- How to use freely resizable font in in Java ME
- How to use Comparator and Comparable in Java? With example
- How to use pop-up TextBox in Java ME
- [Java Tips] How to Use StringTokenizer in Java?
- how to compile source code of "Data Structures & Algorithm Analysis in Java" writen by Mark Allen Weiss
- How to use MathJax in Markdown