java.util.ArrayList
1.概述
List接口常用的三个实现类:ArrayList、Vector、Linkedlist
它们的数据结构分别是数组、数组和链表
数组:查询快、增删慢,Vector基本不用了,用ArrayList
链表:查询慢、增删快
这里学习第一种List实现类ArrayList
需求1:使用List的几个实现类遍历字符串和自定义对象和前面用Collection和List遍历一样
2.内容
A.构造方法
ArrayList()
构造一个初始容量为 10 的空列表。
ArrayList(Collection<? extends E> c)
构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。
ArrayList(int initialCapacity)
构造一个具有指定初始容量的空列表。
B.成员方法
没什么特殊的功能,延用List的方法
package knowledge_basic_02;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.ListIterator;
class General2{
public String name;
public int age;
General2(String name,int age){
this.name=name;
this.age=age;
}
}
public class ArrsyListDemo {
public static void main(String[] args) {
//构造方法演示
//构造一个初始容量为10的空列表
ArrayList al=new ArrayList();
//构造一个初始容量为20的空列表
ArrayList al2=new ArrayList(20);
//构造一个初始内容为已知Collection对象的列表
Collection c=new ArrayList();
ArrayList al3=new ArrayList(c);
//它没什么特别的方法,它的迭代器直接继承List
//用ArrayList存储并遍历字符串
//第一步:构造一个ArrayList对象
ArrayList a=new ArrayList();
//第二步:用ArrayList存储字符串
a.add("abc");
a.add("def");
a.add("ghi");
//第三步:遍历字符串
//1.构造ArrayList的迭代器对象,可以用Iterator也可以用ListIterator
ListIterator lit=a.listIterator();
//2.调用迭代器的hasNext、next、hasPrevious、previous遍历列表内容
//只能先顺序遍历,才可以倒序遍历
while(lit.hasNext())
{
String s=(String)lit.next();
System.out.print(s+" ");
}
System.out.println("");
while(lit.hasPrevious())
{
String s=(String)lit.previous();
System.out.print(s+" ");
}
System.out.println("");
//用ArrayList存储并遍历自定义对象
//第一步:构造一个ArrayList对象,此处直接清空上面的
a.clear();
//第二步:用ArrayList存储自定义对象
a.add(new General2("关羽",41));
a.add(new General2("张飞",39));
a.add(new General2("赵云",36));
//第三步:遍历自定义对象
//1.构造ArrayList迭代器,可以用Iterator或ListIterator
Iterator it=a.iterator();
//2.调用迭代器的方法遍历
while(it.hasNext()){
General2 g=(General2)it.next();
System.out.println(g.name+":"+g.age);
}
}
}
abc def ghi
ghi def abc
关羽:41
张飞:39
赵云:36