java的framework_JAVA FRAMEWORK
1.新集合接口.
(1)Deque:雙端隊列,支持兩端的插入和移出,擴展了Queue。
(2)BlockingDeque:支持接下來操作的Deque,當讀取一個元素時,等待Deque成為非空;當存儲一個元素時,等待空間可用。擴展了Deque和
BlockingQueue。這個接口是java.util.concurrent的一部分。
(3)NavigableSet:擴展了導航方法,為了給定搜索目標,提供最匹配結果的SortedSet。NavigableSet可以在升序或降序,被訪問和移動。這
個接口用來代替SortedSet接口。
(4)NavigableMap:擴展了導航方法,返回給定搜索目標最匹配結果的SortedMap。NavigableMap可以在升序或降序,被訪問和移動。這個接口
用來代替SortedMap接口。
(5)ConcurrentNavigableMap:一個并發的NavigableMap。這個接口是java.util.concurrent的一部分。
2.新集合接口的實現類.
(1)ArrayDeque:實現Deque接口的高效率可變長的數組。
(2)ConcurrentSkipListSet:實現NavigableSet接口,可量測的,并發的,可跳躍的列表實現。
(3)ConcurrentSkipListMap:實現ConcurrentNavigableMap接口,可量測的,并發的,可跳躍的列表實現。
(4)LinkedBlockingDeque:實現BlockingDeque接口,可量測的,并發的,可選FIFO(First-In,First-Out)模塊化的以鏈接點為基礎的Deque。
(5)AbstractMap.SimpleEntry:Map.Entry簡單的易變的實現。
(6)AbstractMap.SimpleImmutableEntry:Map.Entry簡單的不變的實現。
3.存在類的被重新實現新的接口。
(1)LinkedList:重新實現了Deque接口。
(2)TreeSet:實現NavigableSet接口。
(3)TreeMap:實現NavigableMap接口。
4.兩個新方法是被加入到Collections工具類中。
(1)newSetFromMap(Map):從一個通過的Map實現,創建一個通用的Set實現。
這沒有IdentityHashSet類,替代的,僅僅使用了:
SetidentityHashSet=Collections.newSetFromMap(newIdentityHashSet());
(2)asLifoQueue(Deque):返回一個后進先出LIFO(Last-In,First-Out)的隊列Deque視圖。
5.Arrays工具類,現在有copyOf和copyOfRange方法有效的改變大小,截取,為了所有類型的數組復制子數組。
之前:
int[]newArray=newint[newLength];
System.arrayCopy(oldArray,0,newArray,0,oldArray.length);
之后:
int[]newArray=Arrays.copyOf(a,newLength);
6.Deque(DoubleEndsQueue)[deck(發音)]?
(1)線性集合,支持元素的,兩端插入,移出。
(2)支持,元素限制。
(3)提供insert,remove,examine方法,這些方法提供兩種形式:
[1]操作失敗,一部分拋出異常,一部分返回特殊值(null或false,依賴方法。)。
[2]元素限制的Deque實現,insert操作是被特殊設計;許多實現插入操作不可能失敗。
(4)繼承Queue接口,作為Queue使用,結果為FIFO(First-In-First-Out).
(5)也可以用作Stack使用,結果為FILO(First-In-Last-Out)。
(6)提供兩個方法,移出內部數據,removeFirstOccurrence和removeLastOccurrence。
(7)該接口不支持索引訪問元素。
(8)Deque,實現類不嚴格要求,阻止null,但是是被推薦阻止null。不被鼓勵使用的原因,null是被一些方法做為特殊的返回值,指示Deque為空。
(9)Deque,不針對不同類型的元素,實現equals和hasCode方法,代替的是繼承基于同一類型的類對象。
(10)該接口屬于JavaCollectionsFramework。
(11)since1.6。
7.ArrayDeque?
(1)實現Deque接口,沒有元素限制。
(2)非線程安全,不支持同步,并發操作。
(3)不允許有空元素。
(4)作為堆棧,快于Stack;作為隊列,快于LinkedList。
(5)除了,以下方法remove、removeFirstOccurrrence、removeLastOccurrence、contains、iterator.remove、批量操作,其它都是線性時間執行。
(6)iterator方法返回的Iterators是fail-fast:如果Iterator創建后,除了Iterator的remove方法,Deque被任何方式,時間修改,將拋出
ConcurrentModificationException。因此,并發修改時候,iterator快速明確的舍棄,勝于冒任意,在不確定時間的不確定行為等未來不可預知的風險。
(7)ConcurrentModificationException,被推薦用來檢查程序Bug,不被推薦用來保證并發修改。
(8)該類實現了Collection和Iterator接口的所有可選方法。
(9)該類屬于JavaCollectionsFramework。
(10)since1.6。
8.BlockingDeque?
(1)支持模塊化操作的Deque,取元素時,等待Deque成為非空。存儲元素時,等待空間成為可用。
(2)BlockingDeque方法有四種形式,不同方式的處理操作不能立即感到滿意,但可能在未來一些時候,感到滿意:
[1]拋出異常。
[2]返回特殊值(根據方法,返回null或false)。
[3]阻塞當前線程,直到操作執行成功。
[4]阻塞指定時間后,放棄。
(3)像不同形式的BlockingQueue一樣,該類是線程安全。
(4)不允許空元素
(5)可選,限制元素,與否。
(6)作為FIFOBlockingQueue使用。
(7)內存結合影響:像別的并發集合操作,在一個線程周期內,放置一個BlockingDeque,在子Deque插入或移出前。
(8)該接口屬于JavaCollectionsFrameWork。
(9)since1.6。
9.LinkedBlockingDeque?
(1)可選的元素限定,基于線性結點的模塊化Deque。
(2)可選的元素限定,可以作為預防過多的擴張。
(3)元素限定capacity沒有指定,默認為Integer.MAX_VALUE。
(4)線性結點是被動態創建于每次插入元素之上的,除了capacity指定的Deque。
(5)除了以下方法remove、removeFirstOccurrence、removeLastOccurrence、contains、iterator.remove、批量操作,其它花費時間都是線性的。
(6)該類實現了Collection和Iterator接口的所有可選方法。
(7)該類屬于JavaCollectionsFramework。
(8)since1.6。
10.NavigableSet?
(1)實現導航方法,并返回指定搜索目標的最接近匹配結果的SortedSet。
(2)方法lower、floor、ceiling、higher,返回元素分別是比給定元素小于、小于或等于、大于或等于、大于的元素。沒有該元素,則返回
null。
(3)可以被訪問,升序或降序。
(4)descendingSet返回所有相關的,反方向的元素視圖。
(5)升序操作快于降序操作。
(6)加之定義了,pollFirst和pollLast方法。返回并移動最大和最小的元素。不存在此元素,返回null。
(7)方法subSet、headSet和tailSet不同于SortedSet的同名方法,接受附加的描述小的,大的相對排外的界定參數。
(8)任何NavigableSet的子接口實際類,都得實現NavigableSet接口。
(9)navigation方法的返回值是不確定的,在實現阻止null元素的實現類中。通過使用contains(null)方法來檢測,消除歧義。
(10)為了避免這個問題,這個接口的實現類是鼓勵阻止插入null值的。
注意:Comparable排序的set本質上是不允許null值。
(11)方法subSet(E,E)、headSet(E)和tailSet(E)是被指定返回實現NavigableSet的SortedSet,為了兼容允許SortedSet的實現類存在,但是,
這個接口的擴展接口或實現類,鼓勵重載這些方法,返回NavigableSet。
(12)該類屬于JavaCollectionsFramework。
(13)since1.6。
11.ConcurrentSkipListSet?
(1)可量測的,并發的,基于ConcurrentSkipListMap,NavigableSet方法。
(2)這些元素被排序根據他們的自然順序,或通過創建Set時的Comparator,依賴使用的構造方法。
(3)這個實現類提供了log(n)時間花費的contains、add、remove方法和變量。
(4)支持多線程并發插入,移出,訪問。
(5)Iterator實現是弱的,返回元素在一些點或創建Iterator時,是反映Set狀態的。他們不拋出ConcurrentModificationException異常,可以
并發別的操作。升序的Iterator和視圖,快于降序。
(6)小心,不像大多數集合,size方法不是常量時間的操作。因為這些Set是不同步的,決定元素的個數是需要元素的往返移動。
(7)批量操作,addAll、removeAll、retainAll、containsAll,是不保證原子執行的。
舉例:一個iterator和addAll并發,瀏覽的數據可能是加入的一部分。
(8)這個類和他的iterator實現了,Set和Iterator接口可選的所有方法。像多數別的并發集合實現,這個類不允許null元素,因為,null元素
和返回值null,不能被正確區分。
(9)該類屬于JavaCollectionsFramework。
(10)since1.6。
12.NavigableMap?
(1)擴展了導航方法并返回給定搜索目標的最接近匹配結果的SortedMap。
(2)lowerEntry、floorEntry、ceilingEntry、higherEntry返回比給定key小于、小于等于、大于等于、大于的key所關聯的Map.Entry對象。沒
有這樣的key,返回null。
(3)同樣的,lowerKey、floorKey、ceilingKey、higherKey方法,僅僅返回關聯key。
(4)以上方法,被設計,定位但不移動條目。
(5)可以通過升序或降序的key來訪問和移動條目。
(6)descendingMap方法返回一個所有關系、方向上相反的視圖。
(7)升序操作和視圖快于降序。
(8)subMap、headMap、tailMap不同于SortedMap中的同名方法,接受附加的描述小的,大的相對排外的界定參數。
(9)任何NavigableMap的子接口實現類,必須實現NavigableMap接口。
(10)接口加之定義了firstEntry、pollFirstEntry、lastEntry、pollLastEntry返回或返回并移動最小或最大的映射。不存在則返回null。
(11)返回Entry方法的執行是期望返回記錄映射建造時快照的Map.Entry,因此通常不支持可選的Entry.setValue方法。
注意:使用put方法可以改變關聯中Map的映射。
(12)subMap(K,K)、headMap(K)、tailMap(K)是被指定返回實現NavigableMap的SortedMap,為了兼容允許SortedMap的實現類存在,但是,
這個接口的擴展接口或實現類,鼓勵重載這些方法,返回NavigableMap。同樣,可以重載SortedMap.keySet()方法返回NavigableMap。
(13)該類屬于JavaCollectionsFramework。
(14)since1.6。
13.ConcurrentNavigableMap?
(1)支持導航操作的ConcurrentMap。
(2)該類屬于JavaCollectionsFramework。
(3)since1.6。
14.ConcurrentSkipListMap?
(1)可量測的、并發的ConcurrentNavigableMap實現類。該Map是被排序根據key的自然順序,或創建時,根據comparator排序,依賴于構造函數。
(2)該實現類實現了一個并發的SkipLists變量,提供了一個預期的平均log(n)執行時間的containsKey、get、put、remove操作和變量。
(3)插入,移出,更新,訪問操作支持多線程并發。
(4)Iterator是弱實現的,在有時或Iterator創建時,返回的元素反映了Map的狀態。不拋出ConcurrentModificationException異常,可以繼續執
行其它操作。
(5)升序key的排序視圖和Iterator是快于降序的。
(6)這個類中方法返回的Map.Entry和視圖,表現了他們創建時的映射的一個快照。他們不支持Entry.setValue操作。
注:使用put,putIfAbsent,replace可能改變關聯的映射,依賴于你需要的嚴密性。
(7)小心,不像大多數集合實現類,size方法不是常量時間執行的。因為這些Map是異步,決定元素的個數是需要元素的往返移動。
(8)putAll,equals,clear是不保證原子執行的。
例如:iterator操作和putAll并發操作,顯示的視圖可能是加入的一部分元素。
(9)這個類實現了Map、Iterator接口的所有可選方法。像許多別的并發實現類,該類不允許null元素,因為,null元素和返回值null,不能被正確
區分。
(10)該類屬于JavaCollectionsFramework。
(11)since1.6。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的java的framework_JAVA FRAMEWORK的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么使用百度网盘搜索下载小说和其他资源
- 下一篇: java声明变量简单程序_零基础学编程之