在进行开发创建数组的时候会发现会有下面这种情况,这是为什么?又有什么区别?
1.List list=new ArrayList()
2.ArrayList arrayList = new ArrayList()
以上两种都是可以的,但是不推荐第二种,
List是接口,它是不可以被实例化的(接口是个抽象类),所以必须以它的实现类去实例化它。
ArrayList是List的实现类(ArrayList实现了List接口),是一个ArrayList对象,它可以使用ArrayList的所有方法。也就是说接口中的变量不能使用实现类中有,接口中没有的方法
另外如果List与ArrayList中有相同的属性(如int i),有相同的方法(如void f()), 则a.i是调用了List中的i ,a.f()是调用了ArrayList中的f();
所以推荐第一种创建数组的方法问题就在于:
List接口有多个实现类,现在你用的是ArrayList,也许哪一天你需要换成其它的实现类,如 LinkedList或者Vector等等,这时你只要改变这一行就行了: List list = new LinkedList(); 其它使用了list地方的代码根本不需要改动。
假设你开始用ArrayList alist = new ArrayList(), 就很麻烦,特别是如果你使用了ArrayList实现类特有的方法和属性。
Arraylist的方法在这
<>中为一个类,称之为泛型,用于限定集合中元素的类,不能是基本数据类型,若不写,则默认为Object类
1、add(Object element) 方法
add(Object element) 方法用于向ArrayList集合中的添加元素。
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("Tom");
list.add("Jim");
}
}
2、size() 方法
size()方法用于返回ArrayList集合中元素个数
int length = list.size();
3、get(int index) 方法
get(int index)方法用于返回集合中对应位置的元素
list.get(0);
4、add(int index, Object element) 方法
add(int index, Object element) 方法用于在集合指定位置添加元素,原集合中从指定位置开始的元素全部后置
list.add(0,"Kate");//指定位置添加元素,从指定位置开始原来元素后移
5、set(int i, Object element) 方法
list.set(1, "Lucy");//指定位置替换元素
6、clear() 方法
list.clear();//清空List集合中的所有元素
7、isEmpty() 方法
boolean flag = list.isEmpty();//判断集合容器是否为空,如果为空,则返回true,否则返回false
8、iterator()
import java.util.ArrayList;
import java.util.Iterator;
public class Test {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("Tom");
list.add("Jim");
Iterator<String> iterator = list.iterator();//将List集合中元素转到iterator变量中
while(iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
9、contains(Object o) 方法
contains(Object o) 方法用以判断集合容器中是否含有指定元素,有返回值,且为boolean型。
boolean flag = list.contains("Jim");//判断集合容器中是否有指定元素 }
10、remove(int index) 方法
remove(int index)方法用于移除列表中指定位置的元素,并返回被删元素
String str = list.remove(0);//删除指定索引(从0开始)位置的元素,将元素返回,并后面元素前移
11、remove(Object o) 方法
remove(Object o) 方法用于移除集合中第一次出现的指定元素,移除成功返回true,否则返回false。
boolean flag = list.remove("Tom");//删除List集合元素,返回boolean,并后面元素前移