當前位置:股票大全官網 - 工商資訊咨詢 - 昆明電腦培訓如何分享java編程抽象技術

昆明電腦培訓如何分享java編程抽象技術

java編程壹直是互聯網上廣泛使用的編程語言,那麽我們就來看看Java編程中的抽象類在今天是如何實現的。希望通過閱讀這篇文章,大家能對java編程技術有更深入的了解。先從昆明電腦培訓開始今天的主要內容。

AbstractMap抽象類實現了壹些簡單通用的方法,本身並不難。但是,這個抽象類中有兩個方法值得關註。keySet和values方法的源代碼實現可以說是教科書式的模型。

抽象類通常實現為骨架,公共方法為其子類實現。在上壹篇文章中,我們解釋了Map接口,本文對AbstractMap類進行了分析和研究。

Java中地圖類型的數據結構相當多。作為它們的骨架,AbstractMap實現了Map接口的壹些方法,也就是說,它為它的各種Map的子類提供了壹個通用的方法,沒有實現的方法可能是不同的。

抽象類不能通過new關鍵字直接創建抽象類的實例,但它可以有壹個構造函數。AbstractMap提供了壹個受保護修飾的無參數構造函數,也就是說只有它的子類可以訪問它(當然它本身就是壹個抽象類,其他類不能直接實例化它),也就是說只有它的子類可以調用這個無參數構造函數。

在Map接口中,內部定義了壹個入口接口。這個接口是Map mapping維護壹個鍵值鍵值對的內部實現,鍵值存儲在這個Map.Entry. AbstractMap實現這個內部接口,有兩個* * *:壹個是可變的SimpleEntry,壹個是不可變的SimpleImmutableEntry。

publicstaticclasssimpleentryimplemententry,java.io.Serializable

地圖。實現了入口接口,實現了Serializable(可序列化)。

它的方法比較簡單,都是取值和存儲值的操作。鍵值的定義是壹個最終的修飾,這意味著它是壹個不可變的引用。另外,它的setValue方法有點特殊,存儲值返回的不是存儲值,而是之前的舊值。需要學習的是它重寫的equals和hashCode方法。

publicstaticclassSimpleImmutableEntryimplementsEntry,Java . io . serializablesimpleimmutableentry

定義為不可變的條目實際上是不可變的,因為它沒有提供setValue方法,所以當多個線程同時訪問時,它不能被setValue方法修改。與SimpleEntry相比,它的鍵和值成員變量被定義為最終類型。調用setValue方法將引發UnsupportedOperationException異常。

它的equals和hashCode方法與SimpleEntry壹致。

接下來,我們來看看AbstractMap抽象類實現了Map接口中的哪些方法。

publicintsize()

在Map中定義了壹個entrySet方法,它返回Map的Set集合。條目,而直接調用set set的size方法就是地圖的大小。

publicbooleanisEmpty()

調用上面的size方法,如果等於0就為空。

public boolean contains key(object key)

這種方法的實現相對簡單。集合Set的叠代器是通過調用entrySet方法遍歷Map得到的。條目,並與參數鍵進行比較。映射可以存儲為空鍵值。因為key=null是專門存儲在Map中的(hashCode值無法計算),所以這裏也決定了參數key是否為空。