class Person{
.....
}
上面定義了一個Person類,下面看好如何使用List
Person p1=new Person();
Person p2=new Person();
List list=new ArrayList();
list.add(p1);
list.add(p2);//這裏是將對象加入到list中
for(int i=0;i....
Person p=(Person)list.get(i);//注意,這裏一定要強制類型轉換,因爲List中取出的對象都是Object類型的,希望對你有所幫助
2、List是一個接口,不能實例化,需要實例化一個ArrayList或者LinkedList
List myList = new ArrayList();
3、使用myList.add(任何對象);就可以進行添加了。
4、取值的時候myList.get(索引);取出來的值都是Object,使用時需要類型轉換。
5、可用Iterator迭代器對List中的元素進行迭代操作。
List 集合中的對象按照一定的順序排放,裏面的內容可以重複。
List接口實現的類:ArrayList(實現動態數組), Vector(實現動態數組) ,LinkedList(實現鏈表), Stack(實現堆棧)
一 list接口
1.java.util.ArrayList類實現一個可增長的動態數組,平時用的比較多的就是add()方法,其它方法
請參考API幫助文檔。使用該方法向集合內添加對象,並且這些對象是按照一定的順序排列
的,它內部原理是數組實現的,因此處理數據量較大時,不建議使用。
public class TestArrayList {
public static void main(String[] args) {
//聲明List 並實例化爲ArrayList
List al = new ArrayList();
//使用add()方法添加元素
al.add("a");
al.add("b");
al.add("c");
al.add("d");
//使用Iterator迭代器遍歷出集合的元素並打印
for(Iterator i = al.iterator();i.hasNext(); ){
String str = (String) i.next();
System.out.println(str);
}
}
}
2.java.util.Vector(向量)類 與ArrayList類似的也是實現一個動態的數組,該向量可以隨意的增長以存放更多的對象
public class TestArrayList {
public static void main(String[] args) {
//聲明List 並實例化爲Vector
List al = new Vector();
//使用add()方法添加對象
al.add("a");
al.add("b");
al.add("c");
al.add("d");
//使用Iterator迭代器遍歷出集合的對象並打印
for(Iterator i = al.iterator();i.hasNext(); ){
String str = (String) i.next();
System.out.println(str);
}
}
}
3.java.util.LinkedList類實現了鏈表,可初始化化爲空或者已存在的集合,通常使用以下方法
add();向鏈表末尾添加對象。
addFirst()在鏈表開頭添加對象。
addLast()在鏈表末尾添加對象。
getFirst()得到鏈表開頭的對象。
getLast()得到鏈表末尾的對象。
注意該類提供了隨機訪問列表中的元素的方法,但是底層依然必須遍歷去查找隨機訪問的對象,因此性能依然有限.
public static void main(String[] args) {
//聲明LinkedList並實例化
LinkedList al = new LinkedList();
//使用add()方法添加元素
al.add("a");
al.add("b");
al.add("c");
al.add("d");
//使用Iterator迭代器遍歷出集合的元素並打印
for(Iterator i = al.iterator();i.hasNext(); ){
String str = (String) i.next();
System.out.println(str);
}
System.out.println("_____");
//向鏈表頭和尾分別添加x和z
al.addFirst("z");
al.addLast("x");
//遍歷查看添加後的結果
for(Iterator i = al.iterator();i.hasNext(); ){
String str = (String) i.next();
System.out.println(str);
}
}
4.java.util.Stack類實現了堆棧數據結構,即按照先進後出的原則存放數據。創建時只能爲空。
使用push()方法進行添加對象
public static void main(String[] args) {
//聲明Stack並實例化
Stack al = new Stack();
//使用push()方法添加元素
al.push("a");
al.push("b");
al.push("c");
al.push("d");
al.push("f");
//使用Iterator迭代器遍歷出集合的元素並打印
for(Iterator i = al.iterator();i.hasNext(); ){
String str = (String) i.next();
System.out.println(str);
}
}
-----------
Example added by myself:
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList list = new ArrayList();
list.add(0,"aa");
list.add(1,"bb");
list.add(2,"cc");
for(int i=0;i<10;i++)
{
list.add(Integer.toString(i));
}
for(int i=0;i<list.size();i++)
{
System.out.println(list.get(i));
}
for(Iterator i=list.iterator();i.hasNext();)
//首先定義一個list對象的Iterator,然後利用該Iterator進行循環迭代操作
{
String s =(String)i.next();
System.out.println(s);
}
}
}
原文:http://blog.sina.com.cn/s/blog_71a536990101b4gb.html