Java中list用法

1、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類型的,希望對你有所幫助

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

發佈了33 篇原創文章 · 獲贊 5 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章