下面的话全是个人翻译,点击此处前往来源
ArrayList 类 实现了List 接口 。因于它的功能及其灵活性而广泛使用。相比Array和ArrayList,大多数开发者选择ArrayList,因为它是一个很好的传统java array的替代品。ArrayList是一个大小可变的数组(resizable-array),它不仅实现了所有List接口的方法,还允许添加 所有 元素,包括null。
数组(array)的毛病是它的长度是固定的,所以当它满的时候,你不能再往里面加东西;同样的,如果从数中移除掉一些元素,数组仍占据同样大小的内存,因为它不会缩小(shrink)。与之不同的是,ArrayList能够在元素进出的时候动态的增长或缩小。抛开这些不说,ArrayList还有着事先定义好的方法来让我们的任务变得简单。我们先看一个ArrayList例子,再去讨论它的方法(method)及其用处。
ArrayList Example in Java
import java.util.*;
public class ArrayListExample {
public static void main(String args[]) {
/*Creation of ArrayList: I'm going to add String
*elements so I made it of string type */
ArrayList<String> obj = new ArrayList<String>();
/*This is how elements should be added to the array list*/
obj.add("Ajeet");
obj.add("Harry");
obj.add("Chaitanya");
obj.add("Steve");
obj.add("Anuj");
/* Displaying array list elements */
System.out.println("Currently the array list has following elements:"+obj);
/*Add element at the given index*/
obj.add(0, "Rahul");
obj.add(1, "Justin");
/*Remove elements from array list like this*/
obj.remove("Chaitanya");
obj.remove("Harry");
System.out.println("Current array list is:"+obj);
/*Remove element from the given index*/
obj.remove(1);
System.out.println("Current array list is:"+obj);
}
}
输出:
Currently the array list has following elements:[Ajeet, Harry, Chaitanya, Steve, Anuj]
Current array list is:[Rahul, Justin, Ajeet, Steve, Anuj]
Current array list is:[Rahul, Ajeet, Steve, Anuj]
ArrayList类的方法
上面的例子已经用到了add和remove方法,然而,ArrayList还有很多有用的方法,下面选几个重要的讲。
1) add( Object o):
obj.add("hello");
上面的例子将”hello”这个字符串(String)加到ArrayList的最后。
2) add(int index, Object o):
obj.add(2, "bye");
根据index往ArrayList中加元素(注:index从0开始)
3) remove(Object o):
obj.remove("Chaitanya");
移除某个元素
4) remove(int index):
obj.remove(3);
移除index处的元素
5) set(int index, Object o):
obj.set(2, "Tom");
更新index处的元素
6) int indexOf(Object o):
int pos = obj.indexOf("Tom");
返回所给元素所在的index,若未找到,返回-1
7) Object get(int index):
String str= obj.get(2);
获取index处的元素
8) int size():
int numberofitems = obj.size();
返回ArrayList的大小
9) boolean contains(Object o):
obj.contains("Steve");
判断所给元素是否在ArrayList中
10) clear():
obj.clear();
清除所有元素