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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

1.1 JAVA集合

發布時間:2025/3/20 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1.1 JAVA集合 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java 集合框架

集合框架被設計成要滿足以下幾個目標。

  • 該框架必須是高性能的。基本集合(動態數組,鏈表,樹,哈希表)的實現也必須是高效的。
  • 該框架允許不同類型的集合,以類似的方式工作,具有高度的互操作性。
  • 對一個集合的擴展和適應必須是簡單的。

從下面面的集合框架圖可以看到,Java 集合框架主要包括兩種類型的容器,

  • 一種是集合(Collection),存儲一個元素集合,
  • 另一種是圖(Map),存儲鍵/值對映射。


在編程時,可以使用數組來保存多個對象,但數組長度不可變化,一旦在初始化數組時指定了數組長度,這個數組長度就是不可變的。如果需要保存數量變化的數據,數組就有點無能為力了。

為了保存數量不確定的數據,以及保存具有映射關系的數據(也被稱為關聯數組),Java 提供了集合類。集合類主要負責保存、盛裝其他數據,因此集合類也被稱為容器類。Java 所有的集合類都位于 java.util 包下,提供了一個表示和操作對象集合的統一構架,包含大量集合接口,以及這些接口的實現類和操作它們的算法。

集合類和數組不一樣,數組元素既可以是基本類型的值,也可以是對象(實際上保存的是對象的引用變量),而集合里只能保存對象(實際上只是保存對象的引用變量,但通常習慣上認為集合里保存的是對象)。

Java 集合類型分為 Collection 和 Map,它們是 Java 集合的根接口,這兩個接口又包含了一些子接口或實現類。圖 1 和圖 2 分別為 Collection 和 Map 的子接口及其實現類。

Collection 接口又有 3 種子類型,List、Set 和 Queue,再下面是一些抽象類,最后是具體實現類,常用的有 ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap 等等。

集合框架是一個用來代表和操縱集合的統一架構。所有的集合框架都包含如下內容:

  • 接口:是代表集合的抽象數據類型。例如 Collection、List、Set、Map
    等。之所以定義多個接口,是為了以不同的方式操作集合對象
  • 實現(類):是集合接口的具體實現。從本質上講,它們是可重復使用的數據結構,例如:ArrayList、LinkedList、HashSet、HashMap。
  • 算法:是實現集合接口的對象里的方法執行的一些有用的計算,例如:搜索和排序。這些算法被稱為多態,那是因為相同的方法可以在相似的接口上有著不同的實現。

除了集合,該框架也定義了幾個 Map 接口和類。Map 里存儲的是鍵/值對。盡管 Map 不是集合,但是它們完全整合在集合中。

集合接口

接口名稱作 用
Iterator 接口集合的輸出接口,主要用于遍歷輸出(即迭代訪問)Collection 集合中的元素,Iterator 對象被稱之為迭代器。迭代器接口是集合接口的父接口,實現類實現 Collection 時就必須實現 Iterator 接口。
Collection 接口是 List、Set 和 Queue 的父接口,是存放一組單值的最大接口。所謂的單值是指集合中的每個元素都是一個對象。一般很少直接使用此接口直接操作。
Queue 接口Queue 是 Java 提供的隊列實現,有點類似于 List。
Dueue 接口是 Queue 的一個子接口,為雙向隊列。
List 接口是最常用的接口。是有序集合,允許有相同的元素。使用 List 能夠精確地控制每個元素插入的位置,用戶能夠使用索引(元素在 List 中的位置,類似于數組下標)來訪問 List 中的元素,與數組類似。
Set 接口不能包含重復的元素。
Map 接口是存放一對值的最大接口,即接口中的每個元素都是一對,以 key?value 的形式保存。

Java集合實現類的作用

類名稱作用
HashSet為優化査詢速度而設計的 Set。它是基于 HashMap 實現的,HashSet 底層使用 HashMap 來保存所有元素,實現比較簡單
TreeSet實現了 Set 接口,是一個有序的 Set,這樣就能從 Set 里面提取一個有序序列
ArrayList一個用數組實現的 List,能進行快速的隨機訪問,效率高而且實現了可變大小的數組
ArrayDueue是一個基于數組實現的雙端隊列,按“先進先出”的方式操作集合元素
LinkedList對順序訪問進行了優化,但隨機訪問的速度相對較慢。此外它還有 addFirst()、addLast()、getFirst()、getLast()、removeFirst() 和 removeLast() 等方法,能把它當成棧(Stack)或隊列(Queue)來用
HsahMap按哈希算法來存取鍵對象
TreeMap可以對鍵對象進行排序

Set和List的區別

  • Set 接口實例存儲的是無序的,不重復的數據。List 接口實例存儲的是有序的,可以重復的元素。

  • Set檢索效率低下,刪除和插入效率高,插入和刪除不會引起元素位置改變 <實現類有HashSet,TreeSet>。

  • List和數組類似,可以動態增長,根據實際存儲的數據的長度自動增長List的長度。查找元素效率高,插入刪除效率低,因為會引起其他元素位置改變 <實現類有ArrayList,LinkedList,Vector> 。

  • 總結

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

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