Collectionインタフェースの説明
8755 ワード
Collectionインタフェースの説明 Collectionは、集合システム内のルートインタフェースであるオブジェクトのセットを表します.重複を許可する要素の中には許可されていないものもあれば、順序がないものもあります.JDKは、このインタフェースの特定のクラスの直接的な実装を提供せず、リストやSetなどのサブインタフェースと抽象クラスの実装のみがあり、このインタフェースは、通常、集合を伝達し、最大の汎用性を必要とする場合に使用される(インタフェースをパラメータとする場合など). このインタフェースのすべてのインプリメンテーションクラスは、無パラメトリックコンストラクタとCollectionとパラメータのパラメトリックコンストラクタを提供するべきである.これは文法的に強制的に規定されているのではなくjava規範が規定されているため、インタフェースにコンストラクタが含まれていない. このインタフェースインプリメンテーションクラスは、メソッドがサポートされていない場合は、U n s p p p p o r t e d OperationExceptionを捨てることができます. 実装クラスによっては、nullの追加が許可されていないものや、要素タイプに制限があるものなど、含まれる要素に異なる制限がある場合があります.条件に合わない要素を追加しようとすると、Null PointerExceptionまたはClassCastExceptionが放出され、条件に合わない要素をクエリーしようとすると、異なる実装に応じて例外が放出されたりfalseが返されたりする可能性があります. 同期ポリシーは、各実装クラスによって独自に決定される.
クエリー操作:
変更操作:
一括アクション:
比較とhash:
デフォルトの方法:
参照先:https://www.jianshu.com/p/ef2990140d05
クエリー操作:
/**
* , Integer.MAX_VALUE, Integer.MAX_VALUE
*/
int size();
/**
*
*/
boolean isEmpty();
/**
*
*/
boolean contains(Object o);
/**
* , ,
*/
Iterator iterator();
/**
* ,
*
*/
Object[] toArray();
/**
* 。 ,
* 。
* ,
* , null
* , ArrayStoreException
* , NullPointerException
*/
T[] toArray(T[] a);
変更操作:
/**
* 。 true。 , false
* 。 , null , 。
* Collection 。
* , ,( false)。 。
*/
boolean add(E e);
/**
* , ; , (o==null?e==null:o.equals(e)) ;
* , true; , ClassCastException ( );
* null null , NullPointerException ( )
* remove UnsupportedOperationException ( )
*/
boolean remove(Object o);
一括アクション:
/**
* this , true
* this , ClassCastException ( )
* null this null , NullPointerException ( )
*/
boolean containsAll(Collection> c);
/**
* this ( )。 , 。
* ( , , 。) this true
* addAll , UnsupportedOpertaionException
* this , NullPointerException
* this hiding , ClassCastException
* , IllegalArgumentException
* , , IllegalStateException
*/
boolean addAll(Collection extends E> c);
/**
* ( )。 , 。 true
* removeAll , UnsupportedOperationException
* , ClassCastException( )
* , (optional), , NullPointerException
*/
boolean removeAll(Collection> c);
/**
* Predicate 。 Predicate
* 。 iterator.remove() 。
* iterator UnsupportedOperationException
* , NullPointerException , UnsupportedOperationException
*/
default boolean removeIf(Predicate super E> filter) {
Objects.requireNonNull(filter);
boolean removed = false;
final Iterator each = iterator();
while (each.hasNext()) {
if (filter.test(each.next())) {
each.remove();
removed = true;
}
}
return removed;
}
/**
* ( ) , 。 true
* retainAll, UnsupportedOperationException
* , ClassCastException( )
* , , , NullPointerException( )
*/
boolean retainAll(Collection> c);
/**
* , , clear UnsupportOperationException 。
*/
void clear();
比較とhash:
boolean equals(Object o);
int hashCode();
デフォルトの方法:
/**
* , ,
*/
default Spliterator spliterator() {
return Spliterators.spliterator(this, 0);
}
default Stream stream() {
return StreamSupport.stream(spliterator(), false);
}
default Stream parallelStream() {
return StreamSupport.stream(spliterator(), true);
}
参照先:https://www.jianshu.com/p/ef2990140d05