一.简介

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));
    
    
}
}