日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

单列集合List的实现类

發布時間:2023/12/3 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单列集合List的实现类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

List接口 [Collection】的子類

1.ArrayList【查詢快,增刪慢】
(1)ArrayList常見方法【部分】

//list[Collection的子類,也是接口],ArrayList也是其實現類 public class Demo2 {public static void main(String[] args) {List<String> list =new ArrayList<>();//ArrayList<String> collection =new ArrayList<>();后面還是直接用list的實現類list.add("aaa");list.add("bbb");list.add("ccc");list.add("dddd");//打印集合包含“a”的元素for (int i = 0; i < list.size(); i++) {if (list.get(i).contains("a")) {System.out.println(list.get(i));}}//add指定位置插入指定的元素list.add(0,"000");//List.remove刪除指定[索引]處的元素,返回被刪除的元素,此處所用//Collection.remove刪除指定內容的元素,返回刪除是否成功的boolean類型String rs1 = list.remove(0);//set修改指定索引處的元素,返回被修改的元素//被修改的元素就會不存在了String rs2 = list.set(2, "eee"); }

(2)ArrayList底層實現思想

//List集合常用實現類ArrayList底層 public class Demo1 {public static void main(String[] args) {List<String> list = new ArrayList<>();2.默認長度為10,size指向0for (int i = 0; i < 10; i++) {list.add("你好");1.作第一次添加時,會做判斷,返回默認長度10}3長度超過10,size指向10,集合擴容1.5倍【將原來的數組拷貝到新的數組中】} }

2.LinkedList【增刪快,查詢慢】
(1)LinkedList常見方法【部分】

//LinkedList 具體實現類,【雙向】鏈表 public class Demo3 {public static void main(String[] args) {LinkedList<String> list = new LinkedList<>();list.add("aaa");list.add("bbb");list.add("ccc");list.add("dddd");//表頭插入指定的元素list.addFirst("0000");//末尾插入指定的元素list.addLast("11111");//返回第一個元素String first = list.getFirst();//返回最后一個元素String last = list.getLast();//刪除第一個元素并返回String s1 = list.removeFirst();//刪除最后一個元素并返回String s2 = list.removeLast(); }

(2)LinkedList底層實現思想

//List集合常用實現類linkedList底層【雙向】鏈表 public class Demo2 {public static void main(String[] args) {LinkedList<String> list = new LinkedList<>();for (int i = 0; i < 10; i++) {list.add("你好");//Node為其內部類1.作第一次添加時,會創建 Node<E>first,Node<E>Last記錄頭節點地址和最后一個節點地址2.添加會new一個Node新節點,將內容賦值給它,將頭尾地址指向它[第一次指向頭尾相同]3.再次做添加,則會再new Node<l,e,null>一個新節點,左指向會指向l[第一次添加的地址],Node<E>Last則會重新指向新節點的右指向}list.get(2);//獲取索引先判斷離頭近還是離尾近[通過index和size>>2來判斷]//然后從頭或者從尾一一查找} }

3.List實現類三種遍歷方式

//迭代器遍歷,使用集合對象創建迭代器對象//一個類中一個迭代器對象只能用一次Iterator<String> it = list.iterator();while (it.hasNext()){String next = it.next();System.out.println(next);}//增強for遍歷for(String i:list){System.out.println(i);}//普通for遍歷for (int i = 0; i < list.size(); i++) {String s = list.get(i);System.out.println(s);}

注:
增強for: 對集合進行遍歷時使用,遍歷過程中若要增刪元素則不能使用
普通for: 遍歷過程中需要增刪元素或操作索引時使用
迭代器: 遍歷過程中需要刪除元素時使用【一個類中一個迭代器對象只能用一次】

總結

以上是生活随笔為你收集整理的单列集合List的实现类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。