一.简介
Java.util.ArrayList类是一个动态数组类型,可以随时从链表中添加或删除一个元素。ArrayList实现了List接口并且可以动态改变大小的。当我们不知道数据元素的个数时,就可使用ArrayList;如果知道数据元素个数,就可以直接用数组。
二.实现
List lists = new ArrayList();(其中的String可以改为integer,double等类型)
注:ArrayList对象只能存放对象,不能存放基础数据类型的数据。
三.构造函数
ArrayList中定义了三种构造方法
1.ArrayList()----------------构造了空的链表。
2.ArrayList(Collection extends E> c)------构造了一个包含指定元素集合的链表,字符E是一个标记,用来表示集合中元素的类型。
3.ArrayList(int initialCapacity)---------构造了一个大小确定但内容为空的链表。initialCapacity参数表示初始容量大小。
四.常用的一些方法
1.添加元素
(1)在List尾部添加元素
void add(E element);
(2)在指定位置添加元素
void add(int index, E element);
(3)插入其他集合全部的元素
Boolean ArrayList(int index, Collection extends E> c);
2.删除元素
(1)删除所有元素
void clear();
(2)删除指定元素
E remove(int index);
(3)删除从某一个位置开始到某一个位置结束的元素
protected void removeRange(int start, int end);
3.修改元素
E set(int index, E element);
4.获取(查询)元素
(1)查询指定范围内的元素
List subList(int fromIndex, int toIndex);
(2)查询指定位置的元素
E get(int index)
(3)查询元素位置
int indexOf(Object a);----输出list集合中第一次出现a的位置,若list集合中没有a对象,则返回-1
lastIndexOf(Object a); ----输出list集合中最后一次出现a的位置,若list集合中没有a对象,则返回-1
(4)是否包含某个特定的元素
Boolean contains(Object a);
5.检查该数组是否为空
boolean isEmpty();--返回true表示没有任何元素。
6.获取该数组的长度(包含元素的个数)
int size();
五.代码实例
1 package日常练习;2 import java.util.*;3 public classArrayListshili {4 public static voidmain(String[] args) {5 ArrayList list=new ArrayList();//实例化list6
7 //添加元素
8 list.add(0,"a");//把"a"添加到list数组的第1个位置。
9 list.add(1,"b");//把"b"添加到list数组的第2个位置。
10 list.add(2,"c");//把"c"添加到list数组的第3个位置。
11 list.add(3,"a");12 list.add("d");//在list数组尾部添加"d"13
14 //输出list数组中的数据
15 System.out.println("数组中包含的元素有:"+list);16
17 //修改元素
18 list.set(2,"h");//将第二个位置的数据改为"h"19
20 //删除元素
21 list.remove(0);//删除第“0”个位置上的元素
22 list.remove("c");//删除第一次找到的“c”元素
23 System.out.println("新数组是:"+list);24
25 //查询元素
26 List wz=list.subList(0, 2);//查询0-2中的元素
27 String wc=list.get(1);//查询1处的元素
28 int n=list.indexOf("a");//a第一次出现的位置
29 int nl=list.lastIndexOf("a");//a最后一次出现的位置
30 System.out.println("0-2中的元素有:"+wz);31 System.out.println("1处的元素为:"+wc);32 System.out.println("是否包含e: "+ list.contains("e"));33 System.out.println("a第一次出现的位置:"+n+"\t"+"a最后一次出现的位置:"+nl);34
35 //清空
36 System.out.println("list是否为空:"+list.isEmpty());37 list.clear();38 System.out.println("list是否为空:"+list.isEmpty()); }}
六.简单应用
package日常练习;//已知数列前几项为:1,1,1,3,5,9....从第四项起每一项为前三项之和,求用户输入项数所对应元素的后四位。
importjava.awt.List;import java.util.*;public class数列求值 {public static voidmain(String[] args) {
Scanner s=newScanner(System.in);int n=s.nextInt();
ArrayList d=new ArrayList();
d.add(0,1);
d.add(1,1);
d.add(2,1);for(int i=3;i
{
d.add(i,(d.get(i-1)+d.get(i-2)+d.get(i-3))%10000);
}
System.out.println(d.get(n-1));
}
}