ArrayList集合类,对数组进行了封装,实现了长度可变的数组,和数组采用相同的存储方式,在内存中分配连续的空间,但是它不等同于数组,ArrayList集合中可以添加任何类型的数据,包括null元素,并将添加的数据转换成Object类型。
ArrayList优点:遍历元素和随机访问元素效率高。
List常用的方法:
增:add(Object obj) 在列表的末尾顺序添加元素,起始索引位置从0开始
插:add(int index, Object element) 在指定的索引位置(index处)添加元素,索引位置必须介于0和元素个数之间
删:remove(Object obj) 从集合中删除指定obj元素
改:set(int index, Object obj) 将index索引位置的元素替换为obj元素
查:get(int index) 返回指定索引位置处的元素,取出来的元素为Object类型,使用前需要进行强制类型转换
长度:size() 返回集合中元素的个数
int indexOf(Object obj) 返回obj元素首次出现的位置,如果没有,则返回-1
int lastIndexOf(Object Obj) 返回obj元素最后一次出现的位置,如果没有,同样返回-1
List subList(int fromIndex, int toIndex) 返回从fromIndex开始到toIndex结束左闭右开(包含左边,不包含右边)的一个子List集合
@Test
public void testList1() {
List list = new ArrayList();
//1.add(Object obj) 添加元素
list.add(123);
list.add("三国演义");
list.add(new Date());
//2.add(int index, Object element) 插入指定元素
list.add(1, "西游记");
//3.remove(Object obj) 删除三国演义
list.remove("三国演义");
//4.set(int index, Object obj) 替换西游记为刘德华
list.set(1, "刘德华");
//5.size() 查看元素的个数
System.out.println("集合中元素的个数为:" + list.size());
//6.indexOf(Object obj) 找出来刘德华第一次出现的位置
list.add("刘德华");
System.out.println("刘德华第一次出现的位置为:"+list.indexOf("刘德华"));
System.out.println("刘德华最后一次出现的位置为:"+list.lastIndexOf("刘德华"));
//查看集合元素
for (int i = 0; i <list.size(); i++) {
System.out.println(list.get(i));
}
}
@Test
public void testList2() {
List list = new ArrayList();
list.add(123);
list.add("三国演义");
list.add("AA");
list.add(new Date());
//7.subList(int fromIndex, int toIndex) 把当前集合返回一个子list集合
List li = list.subList(0, 3);
System.out.println(li);
}