JAVA: List用法

一、List中能夠添加任何對象,包括本身定義的新的類。
  • 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類型的,但願對你有所幫助
    
    }
二、List是一個接口,不能實例化,須要實例化一個ArrayList或者LinkedList
List myList = new ArrayList();
三、使用myList.add(任何對象);就能夠進行添加了。
四、取值的時候myList.get(索引);取出來的值都是Object,使用時須要類型轉換。
五、可用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);
}
}

}
3.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);
  }
 }
}
相關文章
相關標籤/搜索