1. 首先List<E>集合繼承與Collection<E>,是一個接口。
① Collection (集合框架是JDK1.2版本出現的)
② list:是有序的,元素可以重複,以為該集合體係有索引。
經常用到的是實現該接口的ArrayList和LinkedList類
③ Arraylist: 底層的數據結構使用的是數組結構,
特點: 查詢速度很快,但是增刪稍慢。線程不同步
LinkedList: 底層使用的是鍊錶數據結構。
特點: 增刪速度很快,查詢稍慢。
Vector:(JDK1.0版本出現的) 底層是數組數據結構,線程同步。被ArrayList替代了。 (已經不用了)
2. List的兩種遍歷方式:
public class Demo { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("A"); list.add("B"); list.add ("C"); System.out.println("........第一種遍歷方式:for遍歷......"); for (Object li : list) { System.out. println(li); } System.out.println("........第二種遍歷方式:ListIterator迭代遍歷......"); ListIterator<String> it = list.listIterator() ; while (it.hasNext()) { Object obj = it.next(); System.out.println(obj); } }}
效果圖:
3.使用LinkList模擬一個堆棧或者隊列數據結構。即: 堆棧:先進後出; 隊列: 先進先出
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();//先進先出---若要改成先進後出,將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()); } }}
效果圖:
以上為先進先出,若要改為先進後出,則根據代碼中寫的改一下就可以了
以上所述就是本文的全部內容了,希望大家能夠喜歡。