hack集合:接口

2018-10-20 11:39 更新

concrete Hack collection classes通常來自各種接口。實(shí)際上,具體類中的許多方法都采用和/或返回這里列出的接口。

一般工作流程將是您將構(gòu)造具體類的實(shí)例,使用參數(shù)中的具體類或接口或返回類型注釋,并調(diào)用具體類的方法可能返回一個(gè)接口。

每個(gè)接口方法的描述可以在API參考中找到。

核心接口

這些是允許迭代,轉(zhuǎn)換(例如toVector)和操縱(例如filter)的接口。

接口描述關(guān)鍵方法
Traversable<T>任何可以迭代使用類似的東西foreach。一個(gè)關(guān)鍵是沒有必要,只是價(jià)值觀。N / A
KeyedTraversable<Tk, Tv>擴(kuò)展 Traversable<T> 并需要一個(gè)密鑰存在。N / A
Container<T>擴(kuò)展 Traversable<T>,但只包括數(shù)組和Hack集合N / A
KeyedContainer<Tk, Tv>擴(kuò)展 KeyedTraversable<Tk, Tv>,但只包括數(shù)組和Hack集合(除了 Set 和 ImmSet 因?yàn)樗麄儧]有鑰匙)N / A
Indexish<Tk, Tv>擴(kuò)展 KeyedTraversable<Tk, Tv> 并且是可以使用方括號(hào)符號(hào)索引的任何東西,除了實(shí)現(xiàn)的對(duì)象 ArrayAccess。通常具有鍵string或類型的實(shí)體int。有一個(gè)方法采取一些常見的方法Indexish 或返回 Indexish。N / A
IteratorAggregate<T>擴(kuò)展 Traversable<T> 并可以生產(chǎn) Iterator。不由數(shù)組實(shí)現(xiàn) 很少直接使用。getIterator()
Iterable<T>擴(kuò)展IteratorAggerate<T>并且是聲明為Hack集合提供功能的方法的界面。toArray()toValuesArray(),toVector(),toImmVector()toSet(),toImmSet()lazy(),values(),map<Tm>((function(T): Tm) $callback),filter((function(T): bool) $callback)zip<Tz>(Traversable<Tz> $traversable),take()takeWhile(),skip()skipWhile(),slice(),concat()firstValue(),lastValue()
KeyedIterable<Tk, Tv>擴(kuò)展 Iterable<Tv> 并增加了關(guān)鍵功能toKeysArray(),toMap(),keys(),lazy(),take(),takeWhile(),skip(),skipWhile(),firstKey()lastKey(),mapWithKey<Tm>(function(Tk, Tv): Tm $callback)filterWithKey(function(Tk, Tv): bool $callback),getIterator(),map<Tm>(function(T): Tm $callback),filter(function(T): bool $callback),zip<Tz>(Traversable<Tz> $traversable)

一般收集界面

這些接口在所有集合之間保留,提供查詢和添加的基本方法。

接口描述關(guān)鍵方法
ConstCollection<T>只讀集合。所有集合都實(shí)現(xiàn)此接口。count(),isEmpty()items()
OutputCollection<T>可變收藏。所有可變集合實(shí)現(xiàn)此接口。add(), addAll()
Collection<T>擴(kuò)展 ConstCollection<T> 和 OutputCollection<T>。結(jié)合只讀和可變集合行為。clear()

特定的收藏訪問接口

所有的集合都有某種訪問機(jī)制?!癎etters”為不可變的集合。為可變集合添加“setters”。這些是暴露這些訪問功能的接口。

接口描述關(guān)鍵方法
ConstIndexAccess<Tk, Tv>所有密鑰集合的接口,用于訪問其值。at(),get(),containsKey()
IndexAccess<Tk, Tv>擴(kuò)展 ConstIndexAccess<Tk, Tv> 并啟用可變集合來設(shè)置密鑰。set()setAll(),removeKey()
ConstSetAccess<Tm>所有集合的接口,以訪問其值。contains()
SetAccess<Tm>擴(kuò)展 ConstSetAccess<Tm> 并啟用可變集以刪除值。remove()
ConstMapAccess<Tk, Tv>擴(kuò)展 ConstSetAccess<Tk> 和 ConstIndexAccess<Tk, Tv> 并啟用對(duì)地圖值的訪問。N / A
MapAccess<Tk, Tv>擴(kuò)展 ConstMapAccess<Tk, Tv>, SetAccess<Tk> 和 IndexAccess<Tk, Tv> 并啟用可變地圖設(shè)置和刪除鍵和值。N / A

特定收集接口

每個(gè)concrete Hack collection class實(shí)現(xiàn)了與該類相關(guān)聯(lián)的適當(dāng)?shù)慕涌凇?/p>

接口描述關(guān)鍵方法
ConstSet<Tv>擴(kuò)展 ConstCollection<Tv>, ConstSetAccess<Tv>, Container<Tv> 和 KeyedIterable<mixed, Tv> 并且表示只讀集合。bunch.
MutableSet<Tv>擴(kuò)展 ConstSet<Tv>, SetAccess 和 Collection<Tv> 并表示可變集。bunch.
ConstVector<Tv>擴(kuò)展 ConstCollection<Tv>, ConstIndexAccess<int, Tv>, Indexish<int, Tv> 和 KeyedIterable<int, Tv> 并且表示只讀向量(值序列)。bunch.
MutableVector<Tv>擴(kuò)展 ConstVector<Tv>, IndexAccess<int, Tv> 和 Collection<Tv> 并表示可變載體。bunch.
ConstMap<Tk, Tv>延長(zhǎng)ConstCollection<Pair<Tk, Tv>>ConstMapAccess<Tk, Tv>, Indexish<Tk, Tv> 和 KeyedIterable<Tk, Tv>并且表示鍵Tk到值的只讀映射Tv。bunch.
MutableMap<Tk, Tv>擴(kuò)展 ConstMap<Tk, Tv>, MapAccess<Tk, Tv> 和 Collection<Pair<Tk, Tv>> 并表示可變圖。bunch.
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)