一.简介
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)); } }