数组列表(ArrayList)
是用来存储可变容量的数组,创建一个ArrayList对象默认的大小为10,如果我们往这个容器中放值,放入值的个数如果超过了默认值(指定的大小),ArrayList会自动的改变数组的长度存放值,不会出现数组下标越界异常
创建的一个ArrayList数组,如果没有给其指定类型,那么ArrayList数组可以用来存放所有类型的数据。
java.lang.Object
java.util.AbstractCollection
java.util.AbstractList
java.util.ArrayList
ArrayList 这个类是Object类的子类,ArrayList这个类是List接口的一个实现类
创建一个ArrayList对象的语法结构
ArrayList[<类型>] 对象名 = new ArrayList[<类型>]();
创建的对象如果没有指定类型可以存放所有类型,如果指定了类型,则只能存放指定类型的数据
package com.ibm.arraylist;
import java.util.ArrayList;
public class ArrayListDemo {
public static void main(String[] args) {
//创建一个ArrayList对象al
ArrayList al = new ArrayList();
al.add(12);
al.add("cw");
al.add(true);
al.add(new String());
//创建一个可变长的数组对象只能存放String类型
//ArrayList表示是泛型用来规定可变长的数组中能存放数据的类型
//如果用泛型规定,那么其他类型的数据就不能放入到可变长的数组中去
ArrayList als = new ArrayList();
als.add("cw");
//als.add(14);
//als.add(false);
//als.add(new Date());
}
}
ArrayList常用方法:
package com.ibm.arraylist;
import java.util.ArrayList;
public class ArrayListDemo2 {
public static void main(String[] args) {
//创建两个ArrayList对象
ArrayList al1 = new ArrayList();//
al1.add(1);
al1.add(3);
al1.add(5);
al1.add(7);
al1.add(9);
ArrayList al2 = new ArrayList();//
al2.add(2);
al2.add(4);
al2.add(6);
al2.add(8);
al2.add(2);
System.out.println(al2.size()+"=========");
//
//boolean add(E e)
// 将指定的元素添加到此列表的尾部。
//void add(int index, E element)
// 将指定的元素插入此列表中的指定位置。
//boolean addAll(Collection< extends E> c)
// 按照指定 collection 的迭代器所返回的元素顺序,将该 collection 中的所有元素添加到此列表的尾部。
//boolean addAll(int index, Collection< extends E> c)
// 从指定的位置开始,将指定 collection 中的所有元素插入到此列表中。
//
// 在al2中的4后面加入一个数字5
al2.add(2,5);
al2.add(2,al1);//2 4 [1, 3, 5, 7, 9] 5 6 8
al2.addAll(al1);
System.out.println(al2.size());
for(int i=0 ; i
System.out.print(al2.get(i)+" ");
}
//移除可变长数组中的所有元素
// al2.clear();
// System.out.println("_"+al2.size());
//clone方法
Object obj = al2.clone();
//将obj强制转换成ArrayList对象
ArrayList al3=(ArrayList)obj;
System.out.println(al3.size()+"<><><>");
//contains方法
boolean flag = al2.contains(8);
System.out.println(flag);
//indexof方法
int index=al2.indexOf(2);
System.out.println(index);
//isEmpty判断可变长的数组是否为空
boolean flag1 = al2.isEmpty();
System.out.println(flag1);
//remove方法
//移除al2中6这个元素值
al2.remove(2);//2代表的是6在al2中这个数组的索引
for(int i=0 ; i
System.out.print(al2.get(i)+"---- ");
}
//要将int这个简单数据类型当做对象,那么就应该采用int类型的封装类封装成一个对象传递
boolean flag2 = al2.remove(new Integer(2));
System.out.println(flag2);