一.简介
Java.util.ArrayList类是一个动态数组类型,可以随时从链表中添加或删除一个元素。ArrayList实现了List接口并且可以动态改变大小的。当我们不知道数据元素的个数时,就可使用ArrayList;如果知道数据元素个数,就可以直接用数组。
二.实现
List<String> lists = new ArrayList<String>();(其中的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 class ArrayListshili {
4 public static void main(String[] args) {
5 ArrayList<String> list=new ArrayList<String>();//实例化list
6
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<String> 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....从第四项起每一项为前三项之和,求用户输入项数所对应元素的后四位。
import java.awt.List;
import java.util.*;
public class 数列求值 {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
int n=s.nextInt();
ArrayList<Integer> d=new ArrayList<Integer>();
d.add(0,1);
d.add(1,1);
d.add(2,1);
for(int i=3;i<n;i++)
{
d.add(i,(d.get(i-1)+d.get(i-2)+d.get(i-3))%10000);
}
System.out.println(d.get(n-1));
}
}