歡迎訪問昆山寶鼎軟件有限公司網站! 設為首頁 | 網站地圖 | XML | RSS訂閱 | 寶鼎郵箱 | 后臺管理
?

北京赛车开奖直播52:新聞資訊

MENU

軟件開發知識
本文由 ImportNew - 唐尤華 翻譯自 way2java。接待插手翻譯小組。轉載請見文末要求。

北京赛车总部在哪里 www.ofmndk.com.cn 1. 簡介

JDK1.2 引入了 Java 薈萃框架,包括一組數據布局。與數組差異,這些數據布局的存儲空間會跟著元素添加動態增加。個中,一些支持添加反復元素另一些不支持,一些支持 null,一些能自動升序打印元素。

所有這些數據布局在 java.util 包里,包括了 Collection、List、Set、Map、SortedMap 接口。這些接口的實現類有 LinkedList、TreeSet、ArrayList、HashMap 等。除了這些數據布局,java.util 包還提供了?Date、GregorianCalender、StringTokenizer、Random 這樣的東西類。

2. 分類

可以憑據接口、實現、算法三個方面臨薈萃框架中的數據布局舉辦分類:

  • 接口:Collection、List、Map 構成了薈萃框架中所有詳細實現類的接口,它們界說了子類必需實現的要領,很是好記。好比向薈萃添加元素,會用到 Collection 中界說的 add() 要領
  • 實現:所有實現了上述3個接口的類,都被稱作薈萃框架,實際上就是數據布局。好比 LinkedList、TreeSet 等
  • 算法:薈萃框架提供了許多可以直接挪用的算法,好比求最大最小值、排序、填充等
  • 3. 優缺點

    有以下4個利益

  • 淘汰事情量的同時增加了軟件的可用性:不需要每個措施員動手實現排序、查找、找出元素在數據布局中呈現的次數
  • 執行速度更快更耐久:薈萃框架的底層數據布局分為兩類,基于節點的和基于數組的,前者在頻繁添加時效率更高,昆山軟件開發,后者在頻繁讀取時速度更快。一些數據布局是?synchronized 線程安詳的,但會影響速度有,另一些則不是線程安詳的。措施員在選用數據布局前要清楚地相識這些因素
  • 互操縱與轉換:由于實現了 Collection 接口,數據布局之間是可以彼此轉換的??梢?clone,可以把現有的布局轉成?synchronized 版本,還可以在把基于鏈表的數據布局轉為基于數組的布局
  • 有以下2個缺點

  • 當心范例轉換:在薈萃框架類之間舉辦轉換時要大大地小心,尤其要思量泛型范例的兼容性
  • 運行時范例查抄:薈萃框架在運行時會拋出異常,需要編程時多加留意
  • 4. 擔任體系

    java.util 中的數據布局擔任體系分為兩大類,一類實現了 Collection 接口,一類實現了 Map 接口。

    Collection 擔任體系Collection 擔任體系(圖片來自Wikipedia)

    Map 擔任體系

    Map 擔任體系(圖片來自Wikipedia)

    薈萃框架焦點接口及實現類:

  • Collection:根接口,大部門數據布局都實現了 Collection 接口中的要領
  • Set:實現 Set 接口的數據布局不答允反復的元素,譬喻 HashSet、LinkedHashSet
  • SortedSet:實現 SortedSet 接口的數據布局默承認按升序打印元素,譬喻?TreeSet
  • List:實現 List 接口的數據布局答允反復元素,可通過 index 會見元素,譬喻 LinkedList、ArrayList、Vector
  • Map:實現 Map 接口的數據布局存儲鍵值對,不答允反復的 key,譬喻 HashMap、LinkedHashMap、Hashtable
  • SortedMap:擔任了 Map 接口,昆山軟件開發,存儲鍵值對,不答允反復的 key,默承認按 key 升序打印元素,譬喻 TreeMap
  • SortedSet 與 SortedMap 默認的排序是自然序,可通過 Comparator 或 Comparable 接話柄現自界說排序。

    在接口與詳細的實現類之間尚有一些抽象類,如下圖:

    本文由 ImportNew -  <a href=蘇州軟件定制開拓 唐尤華 翻譯自 way2java" class="aligncenter size-full wp-image-31240" title="ss38" src="/uploads/allimg/c190106/154C1VbM5F-321T.png" />

    這些抽象類為薈萃增加了許多成果:

  • HashSet:實現 Set 接口,不答允反復的元素,底層數據布局 hash table
  • LinkedHashSet:實現 Set 接口,不答允反復的元素,底層數據布局 hash table 與雙鏈表
  • TreeSet:實現 NavigableSet 接口,不答允反復的元素,昆山軟件公司,底層數據布局紅黑樹
  • ArrayList:實現 List 接口,答允反復元素,底層數據布局可變數組
  • LinkedList:實現?List?接口,答允反復元素,底層數據布局雙鏈表
  • Vector:實現?List?接口,答允反復元素,底層數據布局可變數組
  • HashMap:實現 Map 接口,不答允反復的 key,底層數據布局 hash table
  • LinkedHashMap:實現 Map 接口,不答允反復的 key,底層數據布局?hash table 與雙鏈表
  • HashTable:實現 Map 接口,不答允反復的 key,底層數據布局?hash table
  • TreeMap:實現 SortedMap 接口,不答允反復的 key,底層數據布局紅黑樹
  • 原文鏈接: way2java 翻譯: ImportNew.com - 唐尤華
    譯文鏈接: //www.importnew.com/31223.html
    [ 轉載請保存原文出處、譯者和譯文鏈接。]