首先講解一下ArratList,開始學習之前,如果大家對於Array數組有很好的理解相信再去理解ArrayList就容易多了。首先arraylist跟linkedlist一樣都是List的實現類,arraylist的本質其實就是數組,一般使用之前先這樣生成ArrayList list = new ArratList();然後可以使用add方法向裏面添加元素,例如list.add(“abc”);需要注意的是“abc”並不是源生數據類型,而是一個String類型,string是引用數據類型,或者說是一個類。由此就看出一點ArraList中存放的都是一個個的對象(其實對象不是原生數據類型也無法真正的存在數組中而是把對象的引用放進ArrayList,這一點跟一個對象類型的數組是一個道理的);所以當使用add往裏面添加元素的時候一定不要出現這樣的情況list.add(123);而必須把123經過一定的轉換,list.add(new Integer(123)),這樣才能存進去;相對應的有一個get方法,list.get(0);這樣就得到了之前存進去的"abc"字符串了,把它真正的去處理來還得經過一個轉換,String a= (String)list.get(0).而要是想取出存進去的123,則必要定義一個對象Object obj = list.get(1);總的來說ArrayList無論是存進去還是取出來都應該是object 類型的
下面是一個最近單的實例:
public class ArrayListTest
{
@SuppressWarnings("unchecked")
public static void main(String[] args)
{
ArrayList list = new ArrayList();
list.add("zhangran");
list.add(new Integer(12345));
list.add(new Persion("ligang"));
System.out.println(list);
System.out.println("-------------");
String s = (String)list.get(0);
Integer integer=(Integer)list.get(1);
int i = integer.intValue();
Persion persion = (Persion)list.get(2);
System.out.println(s);
System.out.println(i);
System.out.println(persion);
}
}
class Persion
{
String name;
public Persion(String name)
{
this.name=name;
}
public String toString()
{
return name;
}
}
相信大家都能看得明白吧。。。
寫下來就是LinkedList,其實它與ArrayList表面上都是一樣的,但是內部的存儲結構卻完全不一樣,簡言之,雖然ArrayList和LinkedList都是存的Object類型,但是在類的底層,ArrayList使用數組來存儲的,而Linkedlist 使用雙向鏈表來實現的,所以當我們常用與數據的查找的時候ArrayList效率會更高一些,但是當要涉及到增加或者刪除的時候就可以使用LinkedList.至於LinkedList中的方法add
,get 跟ArrayList表面上沒有任何差異,所以不再贅述。。。。