ArrayList 类
ArrayList 是list最常见的实现类,内部是通过数组实现的,它允许对元素的快速随机访问,当从arraylist 的中间位置插入或者删除元素时,需要对数组进行复制,移动,代价比较高。因此它适合随机查找和遍历,不适合插入和删除。
ArrayList的实质就是一个会自动增长的数组。它是利用封装的数组来实现的list接口,底层用数组来实现。随着向ArrayList中不断添加元素,其容量会自动增长。
ArrayList 类的构造方法
构造方法 | 说 明 |
---|
ArrayList() | 创建一个空的ArrayList对象 |
ArrayList(int size) | 创建一个指定大小的ArrayList对象 |
ArrayList(Collection c) | 创建指定集合的ArrayList对象 |
ArrayList 类的常用方法
方法 | 说 明 |
---|
Object[ ] toArray( ) | 以数组形式返回ArrayList 中的元素 |
int siez( ) | 返回当前ArrayList 中的元素数量 |
boolean add( Object o) | 将对象添加到ArrayList 的最后 |
boolean add( int index, Object o) | 在指定位置index上添加元素o |
boolean addAll(Collection c) | 将集合C 中的素有元素添加到ArrayList 的最后 |
Object get(int index) | 返回ArrayList 中的指定位置 |
int indexOf(Object o) | 返回第一个出现元素o 的位置,否则返回-1 |
int lastIndexof(Object o ) | 返回最后一个元素o的位置,否则返回-1 |
Object remove(int index) | 删除指定位置上的元素 |
Object set(int index, Object element) | 用元素element取代位置index上的元素,并且返回被取待的元素 |
Iterator iterator() | 返回一个迭代器,用来访问ArrayList中的各个元素 |
上代码:
package com.arraylist;
import java.util.ArrayList;
import java.util.ListIterator;
public class TextOne {
public static void main(String[] args) {
ArrayList arrlt=new ArrayList();
arrlt.add("abc");
arrlt.add("你好");
arrlt.add(132);
arrlt.add(true);
arrlt.add("@#");
System.out.println("======长度==========");
System.out.println("arrlt长度为:"+arrlt.size());
System.out.println("=====输出集合===========");
System.out.println(arrlt);
System.out.println(arrlt.toString());
System.out.println("=====遍历集合===========");
System.out.println("----普通for循环:----");
ListIterator lit=arrlt.listIterator();
for (int i = 0; i < arrlt.size(); i++) {
System.out.println(lit.next());
}
System.out.println("----增强for循环:----");
for (Object object : arrlt) {
System.out.println(object);
}
System.out.println("=====正向遍历集合===========");
ListIterator lit2=arrlt.listIterator();
while(lit2.hasNext()){
Object obj=lit2.next();
System.out.println(obj);
}
System.out.println("=====倒序遍历集合===========");
while(lit.hasPrevious()){
Object obj=lit.previous();
System.out.println(obj);
}
System.out.println("=====截取集合中的某一片段(包头不包尾)===========");
System.out.println(arrlt.subList(1, 3));
System.out.println("=====指定位置向后取值===========");
ListIterator lit3=arrlt.listIterator(2);
while(lit3.hasNext()){
Object obj=lit3.next();
System.out.println(obj);
}
System.out.println("=====指定位置向前取值(反向取值)===========");
ListIterator lit4=arrlt.listIterator(2);
while(lit4.hasPrevious()){
Object obj=lit4.previous();
System.out.println(obj);
}
System.out.println("====删除===========");
System.out.println("删除参数:"+arrlt.remove(2));
System.out.println("删除后的集合:"+arrlt);
System.out.println("====获取元素===========");
System.out.println("获取元素:"+arrlt.get(1));
System.out.println("====获取位置===========");
System.out.println("获取元素位置:"+arrlt.indexOf("你好") );
System.out.println("====清空===========");
arrlt.clear();
System.out.println(arrlt);
}
}