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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java——集合框架(List)

發(fā)布時(shí)間:2023/12/1 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java——集合框架(List) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

集合框架(List的三個(gè)子類的特點(diǎn))

  • A:List的三個(gè)子類的特點(diǎn)
    ArrayList:
    底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組,查詢快,增刪慢。
    線程不安全,效率高。
    Vector:
    底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組,查詢快,增刪慢。
    線程安全,效率低。
    Vector相對(duì)ArrayList來(lái)說(shuō) 查詢慢(線程安全)
    Vector相對(duì)LinkedList來(lái)說(shuō),增刪慢(數(shù)組結(jié)構(gòu))
    LinkedList:
    底層數(shù)據(jù)結(jié)構(gòu)是鏈表,查詢慢,增刪快。
    線程不安全,效率高。

    Vector和ArrayList的區(qū)別
    Vector是線程安全的,效率低
    ArrayList是線程不安全的,效率高
    共同點(diǎn):都是數(shù)組實(shí)現(xiàn)的

    ArrayList和LinkedList的區(qū)別
    ArrayList底層是數(shù)組結(jié)構(gòu),查詢和修改快
    LinkedList底層是鏈表結(jié)構(gòu),增和刪比較快,查詢和修改比較慢
    共同點(diǎn):都是線程不安全的

    • B:List有三個(gè)兒子,
      當(dāng)查詢多的時(shí)候,用ArrayList
      增刪多的時(shí)候,用LinkedList
      如果查詢、增刪都多的時(shí)候,用ArrayList
package com.wsq.bean; public class Student {private String name;private int age;public Student() {super();}public Student(String name, int age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setNaem(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Student [naem=" + name + ", age=" + age + "]";} } package com.wsq.collection; import com.wsq.bean.Student; public class Demo_array {public Demo_array() {}public static void main(String[] args) {//int [] arr = new int [5]; //創(chuàng)建基本數(shù)據(jù)類型數(shù)組Student [] arr = new Student [5];//引用基本數(shù)據(jù)類型數(shù)組arr[0] = new Student("張三",23);//創(chuàng)建一個(gè)學(xué)生對(duì)象,存儲(chǔ)在數(shù)組的第一個(gè)位置arr[1] = new Student("李四",24);//創(chuàng)建一個(gè)學(xué)生對(duì)象,存儲(chǔ)在數(shù)組的第二個(gè)位置arr[2] = new Student("王五",25);//創(chuàng)建一個(gè)學(xué)生對(duì)象,存儲(chǔ)在數(shù)組的第三個(gè)位置for(int i = 0;i<arr.length;i++){System.out.println(arr[i]);}} } package com.wsq.collection; import java.util.ArrayList; import java.util.Collection; import com.wsq.bean.Student; /** ArrayList的父類重寫toString方法,所以*/ public class Demo2_Collection {@SuppressWarnings("unchecked")public static void main(String[] args) {@SuppressWarnings("rawtypes")Collection c = new ArrayList();c.add("a");c.add("b");c.add("c");c.add("d");c.remove("b"); //刪除指定元素System.out.println(c);}public static void demo1(){Collection c = new ArrayList();//父類引用指向子類對(duì)象boolean b1 = c.add("abc"); //自動(dòng)裝箱new Booleanz(ture);boolean b2 = c.add(true);boolean b3 = c.add(100);boolean b4 = c.add(new Student("張三",23));boolean b5 = c.add("abc");System.out.println(b1);System.out.println(b2);System.out.println(b3);System.out.println(b4);System.out.println(b5);System.out.println(c.toString());} } package com.wsq.collection; import java.util.ArrayList; import java.util.Collection; import com.wsq.bean.Student; public class Demo3_Collection {public static void main(String[] args) {//demo1();Collection c = new ArrayList();c.add(new Student("張三",23));//object obj = new student("張三",23);c.add(new Student("李四",24));c.add(new Student("王五",25));c.add(new Student("趙六",26));Object [] arr = c.toArray();//將集合轉(zhuǎn)換成數(shù)組for (int i = 0; i < arr.length; i++) {//System.out.println(arr[i]);Student s = (Student)arr[i];//向下轉(zhuǎn)型System.out.println(s.getName() + "..." + s.getAge());}}public static void demo1(){Collection c = new ArrayList();c.add("a");c.add("b");c.add("c");c.add("d");Object[] arr = c.toArray();for(int i= 0;i<arr.length;i++){System.out.println(arr[i]);} } } package com.wsq.collection; import java.util.ArrayList; import java.util.Collection; public class Demo4_CollectionAll {public static void main(String[] args) {//demo1(); //demo2();//demo3();Collection c1 = new ArrayList();c1.add("a");c1.add("b");c1.add("c");c1.add("d"); Collection c2 = new ArrayList();c2.add("a");c2.add("b");c2.add("c");c2.add("d");//取交集,如果調(diào)用的集合改變就返回true,如果調(diào)用的集合不變就返回falseboolean b = c1.retainAll(c2); //取交集System.out.println(b);System.out.println(c1);}public static void demo1(){Collection c1 = new ArrayList();c1.add("a");c1.add("b");c1.add("c");c1.add("d");Collection c2 = new ArrayList();c2.add("a");c2.add("b");c2.add("c");c2.add("d");//c1.addAll(c2); //將c2中的每一個(gè)元素添加到c1中c1.add(c2);System.out.println(c1);//將c2看成一個(gè)對(duì)象添加到c1中}public static void demo2(){Collection c1 = new ArrayList();c1.add("a");c1.add("b");c1.add("c");c1.add("d");Collection c2 = new ArrayList();c2.add("a");c2.add("b");c2.add("z");boolean b = c1.removeAll(c2); //刪除的是交集System.out.println(b);System.out.println(c1);}public static void demo3(){Collection c1 = new ArrayList();c1.add("a");c1.add("b");c1.add("c");c1.add("d");Collection c2 = new ArrayList();c2.add("a");c2.add("b");c2.add("z");boolean b = c1.containsAll(c2); //判斷調(diào)用的集合是否包含傳入的集合System.out.println(b);} } package com.wsq.collection; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import com.wsq.bean.Student; public class Demo5_Iterator {public static void main(String[] args) {Collection c = new ArrayList();c.add(new Student("張三",23));c.add(new Student("李四",24));c.add(new Student("王五",25));c.add(new Student("趙六",26));//獲取迭代器Iterator it = c.iterator();while(it.hasNext()){//System.out.println(it.hasNext());Student s = (Student)it.next(); //向下轉(zhuǎn)型System.out.println(s.getName() + "..." + s.getAge());}}public static void demo1(){Collection c = new ArrayList();c.add("a");c.add("b");c.add("c");c.add("d");//對(duì)集合中的元素迭代(遍歷)Iterator it = c.iterator();/*boolean b1 = it.hasNext(); //判斷集合中是否有元素,有就返回trueObject obj1 = it.next();System.out.println(b1);System.out.println(obj1);boolean b2 = it.hasNext(); //判斷集合中是否有元素,有就返回trueObject obj2 = it.next();System.out.println(b2);System.out.println(obj2);*/while(it.hasNext()){System.out.println(it.next());}} } package com.wsq.list; import java.util.List; import java.util.ArrayList; public class Demo1_LIst {public static void main(String[] args) {//demo1();//demo2();//demo3();//demo4();List list = new ArrayList();list.add("a");list.add("b");list.add("c"); //index<=size并且index>=0都會(huì)報(bào)異常list.add("d");list.set(1, "z"); //將指定位置的元素修改System.out.println(list);} public static void demo1(){List list = new ArrayList();list.add("a");list.add("b");list.add("c"); //index<=size并且index>=0都會(huì)報(bào)異常list.add("d");list.add(4,"f");//list.add(1,"e");//list.add(10,"z"); //當(dāng)儲(chǔ)存時(shí),不存在的索引時(shí),就會(huì)出現(xiàn)索引越界異常System.out.println(list);}public static void demo2(){List list = new ArrayList();list.add("a");list.add("b");list.add("c"); //index<=size并且index>=0都會(huì)報(bào)異常list.add("d");Object obj = list.remove(1); //通過(guò)索引刪除元素,將被刪除的元素返回System.out.println(obj);System.out.println(list); }public static void demo3(){List list = new ArrayList();list.add(111);list.add(222);list.add(333);list.remove(111); //刪除的時(shí)候不會(huì)自動(dòng)裝箱,把111當(dāng)成索引 System.out.println(list); }public static void demo4(){List list = new ArrayList();list.add("a");list.add("b");list.add("c"); //index<=size并且index>=0都會(huì)報(bào)異常list.add("d"); /*Object obj1 = list.get(2);System.out.println(obj1);*///通過(guò)索引遍歷List集合for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));}}} package com.wsq.list; import java.util.Enumeration; import java.util.Vector; public class Demo2_Vector {public static void main(String[] args) {Vector wsq = new Vector();wsq.addElement("a");wsq.addElement("b");wsq.addElement("c");wsq.addElement("d");Enumeration yy = wsq.elements();while(yy.hasMoreElements()){System.out.println(yy.nextElement());}} } package com.wsq.list; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class Demo4_ListIterator {public static void main(String[] args) {List list = new ArrayList(); //Object obj = new String();list.add("a");list.add("b");list.add("world");list.add("d");list.add("e");ListIterator lit = list.listIterator(); //獲取迭代器while(lit.hasNext()){ System.out.println(lit.next()); //獲取元素并將指針向后移動(dòng)}System.out.println("-------------------------");while(lit.hasPrevious()){System.out.println(lit.previous()); //獲取元素并將指針向前移動(dòng)}} }

總結(jié)

以上是生活随笔為你收集整理的Java——集合框架(List)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。