国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

集合框架知識系列02 集合頂層接口

helloworldcoding / 1950人閱讀

摘要:通過迭代器,開發人員不需要了解容器底層的結構,就可以實現對容器的遍歷。由于創建迭代器的代價小,因此迭代器通常被稱為輕量級的容器。定義如下中定義的方法如下本節主要總結了集合相關的頂層接口,下一節將分析每一類集合實現類。

首先,下面是Collection、Map和、Set接口的相關架構圖

Collection接口

Map接口


圖片來源:http://www.cnblogs.com/skywan...

一、Collection相關接口和類

和Collection相關的接口主要有Collection、List和Set接口,其他接口會在介紹三個接口中穿插講解。

1、Collection接口

Collection是一個抽象出來的接口,定義如下:

public interface Collection extends Iterable {}

其中包括了集合的基本操作,包括:刪除、添加、遍歷、大小等。
Collection中定義方法如下:

int size();
boolean isEmpty();
boolean contains(Object o);
Iterator iterator();
Object[] toArray();
 T[] toArray(T[] a);
boolean add(E e);
boolean remove(Object o);
boolean containsAll(Collection c);
boolean addAll(Collection c);
boolean removeAll(Collection c);
boolean retainAll(Collection c);
void clear();
boolean equals(Object o);
int hashCode();
//1.8新增
default boolean removeIf(Predicate filter){}
default Spliterator spliterator(){}
default Stream stream(){}
default Stream parallelStream() {}

AbstractCollection抽象類繼承自Collection,實現了除iterator()和size()的所有方法。定義如下:

public abstract class AbstractCollection implements Collection {}
2、List接口

List接口繼承自Collection,List中的元素的允許重復的。定義如下:

public interface List extends Collection {}

和Collection不重合、List特有的方法如下:

boolean addAll(int index, Collection c);
default void replaceAll(UnaryOperator operator) {}
default void sort(Comparator c) {}
E get(int index);
E set(int index, E element);
void add(int index, E element);
E remove(int index);
int indexOf(Object o);
int lastIndexOf(Object o);
ListIterator listIterator();
ListIterator listIterator(int index);
List subList(int fromIndex, int toIndex);

AbstractList抽象類繼承了AbstractCollection,并且實現了List接口,定義如下:

public abstract class AbstractList extends AbstractCollection implements List {}
3、Set接口

Set接口繼承自Collection,Set是數學中定義的集合,元素不允許重復。定義如下:

public interface Set extends Collection {}

Set接口和Collection中方法一致,具體見Collection接口方法。

AbstractSet抽象類繼承了AbstractCollection,并且實現了Set接口,定義如下:

public abstract class AbstractSet extends AbstractCollection implements Set {}
二、Map相關接口和類

Map是一種鍵值對的映射,沒有繼承Collection接口,具體定義如下:

public interface Map {}
1、Map接口

Map接口中定義了添加、刪除、遍歷等相關方法,具體方法如下:

int size();
boolean isEmpty();
boolean containsKey(Object key);
boolean containsValue(Object value);
V get(Object key);
V put(K key, V value);
V remove(Object key);
void putAll(Map m);
void clear();
Set keySet();
Collection values();
Set> entrySet();
interface Entry {}
boolean equals(Object o);
int hashCode();
//1.8新增
default V getOrDefault(Object key, V defaultValue) {}
default void forEach(BiConsumer action) {}
default void replaceAll(BiFunction function) {}
default V putIfAbsent(K key, V value) {}
default boolean remove(Object key, Object value) {}
default boolean replace(K key, V oldValue, V newValue) {}
default V replace(K key, V value) {}
default V computeIfAbsent(K key,
Function mappingFunction) {}
default V computeIfPresent(K key,
BiFunction remappingFunction) {}
default V compute(K key,
BiFunction remappingFunction) {}
default V merge(K key, V value,
BiFunction remappingFunction){}
2、AbstractMap類

AbstractMap抽象類實現了Map接口,實現Map中定義的方法,定義如下:

public abstract class AbstractMap implements Map {}
3、SortedMap和NavigableMap接口

SortedMap表示一個有序的鍵值映射,排序的方式有兩種:自然排序和指定比較強排序。插入有序的SortedMap的所有元素都必須實現Comparable接口,具體方法如下:

Comparator comparator();
SortedMap subMap(K fromKey, K toKey);
SortedMap headMap(K toKey);
SortedMap tailMap(K fromKey);
K firstKey();
K lastKey();
Set keySet();
Collection values();
Set> entrySet();

NavigableMap是SortedMap接口的擴展,有針對給定搜索目標返回最接近匹配項的導航方法。具體方法如下:

Map.Entry lowerEntry(K key);
K lowerKey(K key);
Map.Entry floorEntry(K key);
K floorKey(K key);
Map.Entry ceilingEntry(K key);
K ceilingKey(K key);
Map.Entry higherEntry(K key);
K higherKey(K key);
Map.Entry firstEntry();
Map.Entry lastEntry();
Map.Entry pollFirstEntry();
Map.Entry pollLastEntry();
NavigableMap descendingMap();
NavigableSet navigableKeySet();
NavigableSet descendingKeySet();
NavigableMap subMap(K fromKey, boolean fromInclusive,
K toKey,   boolean toInclusive);
NavigableMap headMap(K toKey, boolean inclusive);
NavigableMap tailMap(K fromKey, boolean inclusive);
SortedMap subMap(K fromKey, K toKey);
SortedMap headMap(K toKey);
SortedMap tailMap(K fromKey);
Iterator相關接口

Iterator的工作是遍歷并選擇序列中的對象,它提供了一種訪問一個容器(container)對象中的各個元素,而又不必暴露該對象內部細節的方法。通過迭代器,開發人員不需要了解容器底層的結構,就可以實現對容器的遍歷。由于創建迭代器的代價小,因此迭代器通常被稱為輕量級的容器。

1、Iterator接口

Iterator接口的定義如下:

public interface Iterator {}

Iterator中定義的方法如下:

boolean hasNext();
E next();
//1.8新增
default void remove() {}
default void forEachRemaining(Consumer action) {}
2、ListIterator接口

支持在迭代期間向List中添加或刪除元素,并且可以在List中雙向滾動。定義如下:

public interface ListIterator extends Iterator {}

ListIterator中定義的方法如下:

boolean hasNext();
E next();
boolean hasPrevious();
E previous();
int nextIndex();
int previousIndex();
void remove();
void set(E e);
void add(E e);

本節主要總結了集合相關的頂層接口,下一節將分析每一類集合實現類。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71986.html

相關文章

  • 集合框架知識系列01 總體框架

    摘要:集合工具包是在包中,實現了數據結構數組棧鏈表隊列映射和集合。集合主要可以劃分為個部分列表集合映射工具類迭代器枚舉類和。集合的框架圖如下圖片來源集合頂層接口主要有和。和都是集合遍歷相關接口,是特有的遍歷工具接口 Java集合工具包是在java.util.*包中,實現了數據結構:數組、棧、鏈表、隊列、映射和集合。Java集合主要可以劃分為4個部分:List列表、Set集合、Map映射、工具...

    honhon 評論0 收藏0
  • net - 收藏集 - 掘金

    摘要:再者,現在互聯網的面試中上點的都會涉及一下或者的問題個高級多線程面試題及回答后端掘金在任何面試當中多線程和并發方面的問題都是必不可少的一部分。假如源碼分析之掘金概念是中集合的一種實現。 攻破 JAVA NIO 技術壁壘 - 后端 - 掘金現在使用NIO的場景越來越多,很多網上的技術框架或多或少的使用NIO技術,譬如Tomcat,Jetty。學習和掌握NIO技術已經不是一個JAVA攻城獅...

    岳光 評論0 收藏0
  • Java集合框架——Map接口

    摘要:第三階段常見對象的學習集合框架集合在實際需求中,我們常常會遇到這樣的問題,在諸多的數據中,通過其編號來尋找某一些信息,從而進行查看或者修改,例如通過學號查詢學生信息。面試題和的區別是單列集合的頂層接口,有子接口和。 第三階段 JAVA常見對象的學習 集合框架——Map集合 showImg(https://segmentfault.com/img/remote/1460000019683...

    princekin 評論0 收藏0
  • Java集合框架概述和集合的遍歷

    摘要:第三階段常見對象的學習集合框架概述和集合的遍歷一集合框架的概述集合的由來如果一個程序只包含固定數量的且其生命周期都是已知的對象,那么這是一個非常簡單的程序。進而它們的遍歷方式也應該是不同的,最終就沒有定義迭代器類。 第三階段 JAVA常見對象的學習 集合框架概述和集合的遍歷 (一) 集合框架的概述 (1) 集合的由來 如果一個程序只包含固定數量的且其生命周期都是已知的對象,那么這是一...

    happyhuangjinjin 評論0 收藏0
  • 集合框架知識系列03 ArrayList的源碼分析和使用示例

    摘要:每次迭代器進結構性修改的時候都將和進行對比如果兩種相等則說明沒有其他迭代器修改了對象,可以進行。 一、ArrayList簡介 ArrayList的內部實現了動態數組,提供了動態的增加和減少元素,繼承AbstractList類,并且實現了List、RandomAccess、Cloneable和java.io.Serializable接口。ArrayList是一個數組隊列,提供添加、刪除、...

    seasonley 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<