1.首先List<E>集合繼承與Collection<E>,是一個(gè)接口。
① Collection (集合框架是JDK1.2版本出現(xiàn)的)
② list:是有序的,元素可以重復(fù),以為該集合體系有索引。
經(jīng)常用到的是實(shí)現(xiàn)該接口的ArrayList和LinkedList類
③ Arraylist: 底層的數(shù)據(jù)結(jié)構(gòu)使用的是數(shù)組結(jié)構(gòu),
特點(diǎn): 查詢速度很快,但是增刪稍慢。線程不同步
LinkedList: 底層使用的是鏈表數(shù)據(jù)結(jié)構(gòu)。
特點(diǎn): 增刪速度很快,查詢稍慢。
Vector:(JDK1.0版本出現(xiàn)的) 底層是數(shù)組數(shù)據(jù)結(jié)構(gòu),線程同步。被ArrayList替代了。(已經(jīng)不用了)
2. List的兩種遍歷方式:
1 public class Demo { 2 public static void main(String[] args) { 3 ArrayList<String> list = new ArrayList<String>(); 4 list.add("A"); 5 list.add("B"); 6 list.add("C"); 7 8 System.out.效果圖:

3.使用LinkList模擬一個(gè)堆棧或者隊(duì)列數(shù)據(jù)結(jié)構(gòu)。即: 堆棧:先進(jìn)后出; 隊(duì)列:先進(jìn)先出
class Duilie{ private LinkedList<Object> link; Duilie(){ link = new LinkedList<Object>(); } public void myAdd(Object obj){ link.addFirst(obj); } public Object myGet(){ return link.removeLast();//先進(jìn)先出---若要改成先進(jìn)后出,將removelast()改成removeFirst() } public boolean isNull(){ return link.isEmpty(); }}public class Demo2 { public static void main(String[] args) { Duilie dl = new Duilie(); dl.myAdd("java01"); dl.myAdd("java02"); dl.myAdd("java03"); dl.myAdd("java04"); while(!dl.isNull()){ System.out.println(dl.myGet()); } }}效果圖:

以上為 先進(jìn)先出,若要改為先進(jìn)后出,則根據(jù)代碼中寫的改一下就可以了
新聞熱點(diǎn)
疑難解答
圖片精選