国产日产欧产精品网站|2022仙踪林官网老狼信息|天天澡天天揉揉Av在线|国产精品成人久久久久久久

JavaSE進階

第11章 集合

11.1 數組與集合

11.1.1數組

  • 邏輯結構:線性的
  • 物理結構:順序的存儲結構
  • 申請內存:一次申請一大段連續的空間,一旦申請到了,內存就固定了。
  • 存儲特點:所有數據存儲在這個連續的空間中,數組中的每一個元素都是一個具體的數據(或對象),所有數據都緊密排布,不能有間隔。
  • 操作
    • 查詢:每一個元素都有一個數值下標,可以通過下標瞬間定位到某個元素
    • 增加:
      • 從尾部增加:數組名[total++]=新元素
      • 從其他位置插入:先把index位置開始所有元素后移,然后數組名[index]=新元素
    • 刪除:先把index后面的元素前移,然后數組名[total--]=null
    • 改:直接數組名[index]=新元素
  • 優缺點
    • 優點:查詢效率高
    • 缺點:添加/刪除效率低,因為都涉及到移動元素;無法直接獲取有效元素的個數,需要total來輔助
  • 使用范圍:查詢操作遠多于插入和刪除操作的場景

11.1.2集合

為了可以滿足用戶數據更多種的邏輯關系,而設計的一系列的不同于數組的可變的聚合的抽象數據類型。

總的特點:

1、只能存對象

2、容量可以自動調節

3、可以直接獲取有效元素的個數:size()

 

1、集合的幾個常用接口

2、詳細描述

  • Collection 層次結構中的根接口。Collection 表示一組對象,這些對象也稱為 collection 的元素。一些 collection 允許有重復的元素,而另一些則不允許。一些 collection 是有序的,而另一些則是無序的。JDK 不提供此接口的任何直接實現:它提供更具體的子接口(如 Set 和 List)實現。此接口通常用來傳遞 collection,并在需要最大普遍性的地方操作這些 collection。
    • List:有序的 collection(也稱為序列)。此接口的用戶可以對列表中每個元素的插入位置進行精確地控制。用戶可以根據元素的整數索引(在列表中的位置)訪問元素,并搜索列表中的元素。
    • Set:一個不包含重復元素的 collection。更確切地講,set 不包含滿足equals(e2) 的元素對 e1 和 e2,并且最多包含一個 null 元素。正如其名稱所暗示的,此接口模仿了數學上的 set 抽象。
      • SortedSet進一步提供關于元素的總體排序 的 Set。這些元素使用其自然順序進行排序,或者根據通常在創建有序 set 時提供的 Comparator進行排序。該 set 的迭代器將按元素升序遍歷 set。提供了一些附加的操作來利用這種排序。(此接口是 SortedMap 的 set 對應接口)。
    • Map:將鍵映射到值的對象。一個映射不能包含重復的鍵;每個鍵最多只能映射到一個值。 Map 接口提供三種collection 視圖,允許以鍵集、值集或鍵-值映射關系集的形式查看某個映射的內容。映射順序 定義為迭代器在映射的 collection 視圖上返回其元素的順序。某些映射實現可明確保證其順序,如 TreeMap 類;另一些映射實現則不保證順序,如 HashMap 類。
      • SortedMap進一步提供關于鍵的總體排序 的 Map。該映射是根據其鍵的自然順序進行排序的,或者根據通常在創建有序映射時提供的 Comparator 進行排序。對有序映射的 collection 視圖(由 entrySet、keySet 和 values 方法返回)進行迭代時,此順序就會反映出來。要采用此排序方式,還需要提供一些其他操作(此接口是 SortedSet 的對應映射)。

 

3、概況總結

  • Collection接口:定義了存取一組對象的方法,其子接口Set和List分別定義了存儲方式
    • Set:中的數據對象沒有順序且不可以重復
    • List:中的數據對象有順序且可以重復

Map接口定義了存儲“鍵(key)-值(value)映射對”的方法

 

 

天全县| 北安市| 平乡县| 冀州市| 怀宁县| 遂昌县| 分宜县| 孙吴县| 福海县| 金昌市| 吉木萨尔县| 屯留县| 迁安市| 夏邑县| 化德县| 砚山县| 汶上县| 汉源县| 抚顺市| 祁阳县| 阿拉尔市| 高安市| 娄底市| 贺兰县| 太和县| 措美县| 无极县| 时尚| 怀远县| 岱山县| 广昌县| 本溪市| 吴桥县| 太仆寺旗| 汉沽区| 兴城市| 井陉县| 元阳县| 鹤山市| 高碑店市| 安西县|