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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java—集合框架List

發布時間:2025/3/15 java 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java—集合框架List 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 集合的概念

  現實生活中:很多的事物湊在一起

  數學中的集合:具有共同屬性的事物的總和

  Java中的集合類:是一種工具類,就像是容器,存儲任意數量的具有共同屬性的對象

  • 集合的作用
  • 在類的內部,對數據進行組織(針對作用與意義一樣的屬性,將他們放到一個集合中)
  • 簡單而快速的搜索大數量的條目
  • 有的集合接口,提供了一系列排列有序的元素,并且可以在序列中快速的插入或刪除有關元素
  • 有的集合接口,提供了映射關系,可以通過關鍵字(key)去快速查找到對應的唯一對象,而這個關鍵字可以是任意類型
    • 與數組相比
  • 數組的長度固定,集合長度可變
  • 數組只能通過下標訪問元素,下標為整型,類型固定,而有的集合可以通過任意類型(下標)查找所映射的具體對象
    • Java集合框架體系結構

      Collection和Map接口是兩個根接口。

      Collection有三個子接口,分別是List(序列)、Queue(隊列)和Set(集)接口,其中List和Queue存儲的元素是排列有序的、可重復的,Set中存儲的元素是無序的、不可重復的。這三個子接口中List和Set是比較常用的。List 有個很常用也很重要的實現類ArrayList(數組序列),Queue有個很重要是實現類LinkedList(鏈表),LinkedList類同時也是List接口的實現類,Set也有很重要的實現類HashSet(哈希集)。

      Map接口也有很多子接口,常用的是它的實現類,其中有個很重要的實現類HashMap(哈希表)。

      在Collection中存儲的是一個一個獨立的對象。而Map內部,以一個Key一個Value兩個對象為一個映射去存儲數據,這樣的一個映射便是Entry類的實例,Entry類(鍵值對)是Map的一個內部類,Key和Value可以是任意類型的對象。

      

    • Collection接口、子接口以及實現類

      Collection接口是List、Queue和Set接口的父接口;定義了可用于操作List、Set和Queue的增刪改查的操作

  • List接口及其實現類——ArrayList
  •   List是元素有序并且可以重復的集合,被稱為序列;可以精確的控制每個元素的插入位置,或刪除某個位置元素;ArrayList是數組序列,底層是由數組實現的。

      以學生選課為例,介紹List的使用:

      1.1添加

      Course.java

    package com.test.collection;/*** 課程類* @author Administrator**/ public class Course {public String id;public String name;public Course(String id, String name){this.id = id;this.name = name;} }

      Student.java

    package com.test.collection;import java.util.HashSet; import java.util.Set; /*** 學生類* @author Administrator**/ public class Student {public String id;public String name;public Set courses;//所選課程public Student(String id, String name) {this.id = id;this.name = name;this.courses = new HashSet();//實例化sourses(Set是接口,接口不能被直接實例化) } }

      ListTest.java

    package com.test.collection;import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List;/*** 備選課程類* @author Administrator**/ public class ListTest {/*** 用于存放備選課程的List*/public List coursesToSelect;public ListTest() {this.coursesToSelect = new ArrayList();}/*** 用于向coursesToSelect中添加備選課程*/public void testAdd() {Course c1 = new Course("1", "數據結構");//創建課程對象的實例coursesToSelect.add(c1);//調用add方法,添加課程到備選課程List中Course temp = (Course) coursesToSelect.get(0);//對象存入集合都變成Object,忽略對象之前的類型,取出時需類型轉換System.out.println("添加了課程:" + temp.id + ":" + temp.name);Course c2 = new Course("2", "C語言");coursesToSelect.add(0, c2);//List中重載的另一個add()方法,可指定元素所添加的位置Course temp2 = (Course) coursesToSelect.get(0);System.out.println("添加了課程:" + temp2.id + ":" + temp2.name);coursesToSelect.add(c1);//List中元素可以重復Course temp0 = (Course) coursesToSelect.get(2);System.out.println("添加了課程:" + temp0.id + ":" + temp0.name);//以下方法會拋出數組下標越界異常//Course c3 = new Course("3", "Java");//coursesToSelect.add(4, c3); Course[] course = {new Course("3", "離散數學"), new Course("4", "匯編語言")};coursesToSelect.addAll(Arrays.asList(course));Course temp3 = (Course) coursesToSelect.get(3);Course temp4 = (Course) coursesToSelect.get(4);System.out.println("添加了兩門課程:" + temp3.id + ":" + temp3.name + temp4.id + ":" + temp4.name);Course[] course2 = {new Course("5", "高等數學"), new Course("6", "計算機網絡")};coursesToSelect.addAll(2, Arrays.asList(course2));Course temp5 = (Course) coursesToSelect.get(2);Course temp6 = (Course) coursesToSelect.get(3);System.out.println("添加了兩門課程:" + temp5.id + ":" + temp5.name + temp6.id + ":" + temp6.name);}public static void main(String[] args) {ListTest lt = new ListTest();lt.testAdd();} }

    ?  執行結果:

      添加了課程:1:數據結構
      添加了課程:2:C語言
      添加了課程:1:數據結構
      添加了兩門課程:3:離散數學4:匯編語言
      添加了兩門課程:5:高等數學6:計算機網絡

    ?  1.2查詢

    package com.test.collection;import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List;/*** 備選課程類* @author Administrator**/ public class ListTest {/*** 用于存放備選課程的List*/public List coursesToSelect;public ListTest() {this.coursesToSelect = new ArrayList();}/*** 取得List中的元素的方法*/public void testGet() {int size = coursesToSelect.size();System.out.println("有以下課程選擇:");for (int i = 0; i < size; i++) {Course c = (Course) coursesToSelect.get(i);System.out.println("課程:" + c.id + ":" + c.name);}}/*** 通過迭代器訪問集合元素*/public void testIterator() {Iterator it = coursesToSelect.iterator();System.out.println("有以下課程選擇(通過迭代器訪問):");while (it.hasNext()) {Course c = (Course) it.next();System.out.println("課程:" + c.id + ":" + c.name);}}/*** 通過for each方法訪問集合元素*/public void testForEach() {System.out.println("有以下課程選擇(通過for each訪問):");for (Object obj : coursesToSelect) {Course c = (Course) obj;System.out.println("課程:" + c.id + ":" + c.name);}}public static void main(String[] args) {ListTest lt = new ListTest();lt.testGet();lt.testIterator();lt.testForEach();} }

      執行結果:

      有以下課程選擇:
      課程:2:C語言
      課程:1:數據結構
      課程:5:高等數學
      課程:6:計算機網絡
      課程:1:數據結構
      課程:3:離散數學
      課程:4:匯編語言

    ?  1.3修改

    public class ListTest {public void testModify() {Course c = new Course("7", "毛概");coursesToSelect.set(4, c);} }

      修改后,有以下課程可以選擇:
      課程:2:C語言
      課程:1:數據結構
      課程:5:高等數學
      課程:6:網絡技術
      課程:7:毛概
      課程:3:離散數學
      課程:4:匯編語言

      1.4刪除

    public class ListTest {public void testDelete() {/*coursesToSelect.remove(4);*//*Course c = (Course) coursesToSelect.get(4);coursesToSelect.remove(c); */Course[] courses = {(Course) coursesToSelect.get(4), (Course) coursesToSelect.get(5)};coursesToSelect.removeAll(Arrays.asList(courses));System.out.println("刪除了課程");} }

      刪除后,有以下課程可以選擇:
      課程:2:C語言
      課程:1:數據結構
      課程:5:高等數學
      課程:6:網絡技術
      課程:4:匯編語言

    ?

    轉載于:https://www.cnblogs.com/tianxintian22/p/6653780.html

    總結

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

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