hack集合:接口
concrete Hack collection classes通常来自各种接口。实际上,具体类中的许多方法都采用和/或返回这里列出的接口。
一般工作流程将是您将构造具体类的实例,使用参数中的具体类或接口或返回类型注释,并调用具体类的方法可能返回一个接口。
每个接口方法的描述可以在API参考中找到。
核心接口
这些是允许迭代,转换(例如toVector)和操纵(例如filter)的接口。
一般收集界面
这些接口在所有集合之间保留,提供查询和添加的基本方法。
接口 | 描述 | 关键方法 |
---|---|---|
ConstCollection<T> | 只读集合。所有集合都实现此接口。 | count() ,isEmpty() ,items() |
OutputCollection<T> | 可变收藏。所有可变集合实现此接口。 | add() , addAll() |
Collection<T> | 扩展 ConstCollection<T> 和 OutputCollection<T> 。结合只读和可变集合行为。 | clear() |
特定的收藏访问接口
所有的集合都有某种访问机制。“Getters”为不可变的集合。为可变集合添加“setters”。这些是暴露这些访问功能的接口。
接口 | 描述 | 关键方法 |
---|---|---|
ConstIndexAccess<Tk, Tv> | 所有密钥集合的接口,用于访问其值。 | at() ,get() ,containsKey() |
IndexAccess<Tk, Tv> | 扩展 ConstIndexAccess<Tk, Tv> 并启用可变集合来设置密钥。 | set() ,setAll() ,removeKey() |
ConstSetAccess<Tm> | 所有集合的接口,以访问其值。 | contains() |
SetAccess<Tm> | 扩展 ConstSetAccess<Tm> 并启用可变集以删除值。 | remove() |
ConstMapAccess<Tk, Tv> | 扩展 ConstSetAccess<Tk> 和 ConstIndexAccess<Tk, Tv> 并启用对地图值的访问。 | N / A |
MapAccess<Tk, Tv> | 扩展 ConstMapAccess<Tk, Tv> , SetAccess<Tk> 和 IndexAccess<Tk, Tv> 并启用可变地图设置和删除键和值。 | N / A |
特定收集接口
每个concrete Hack collection class实现了与该类相关联的适当的接口。
接口 | 描述 | 关键方法 |
---|---|---|
ConstSet<Tv> | 扩展 ConstCollection<Tv> , ConstSetAccess<Tv> , Container<Tv> 和 KeyedIterable<mixed, Tv> 并且表示只读集合。 | A bunch. |
MutableSet<Tv> | 扩展 ConstSet<Tv> , SetAccess 和 Collection<Tv> 并表示可变集。 | A bunch. |
ConstVector<Tv> | 扩展 ConstCollection<Tv> , ConstIndexAccess<int, Tv> , Indexish<int, Tv> 和 KeyedIterable<int, Tv> 并且表示只读向量(值序列)。 | A bunch. |
MutableVector<Tv> | 扩展 ConstVector<Tv> , IndexAccess<int, Tv> 和 Collection<Tv> 并表示可变载体。 | A bunch. |
ConstMap<Tk, Tv> | 延长ConstCollection<Pair<Tk, Tv>> ,ConstMapAccess<Tk, Tv> , Indexish<Tk, Tv> 和 KeyedIterable<Tk, Tv> 并且表示键Tk 到值的只读映射Tv 。 | A bunch. |
MutableMap<Tk, Tv> | 扩展 ConstMap<Tk, Tv> , MapAccess<Tk, Tv> 和 Collection<Pair<Tk, Tv>> 并表示可变图。 | A bunch. |