ArrayList LinkedList Setおよびその他のコレクションのJava原則について話す

反復と呼ばれる英語の単語があります。

明らかに、これはiterableと呼ばれる形容詞であるため、jdk1.5バージョンはそのようなインターフェースを導入し始めました。そのようなインターフェースは非常に眩しく、非常に概念的で非常に思慮深く、人々に無制限の関連を与え、考えさせます実現可能なクラスがたくさんあり、扉を開いて新しい世界に入るようです

 

これは、すべてのコレクションのインターフェースエントリです。イテレータが表示されている場合は、すべてのコレクションがイテレータを呼び出すことができることを意味します。これは問題ありません。たとえば、list.iterator().Xx

 

 

 

 

 

  イテレータのメソッドは以下、説明なし

  

 

 

   hasNext()は、配列内の次のメンバーが実装クラスに存在するかどうかを確認するために使用され、次のメンバーが空であるかどうか、存在するかどうかに関係なく、ポインターは移動しますか?もちろん移動しないでください。結果はブール値である必要があります

   next()、戻り値の型はEです。これはイテレーターのメンバーです。これは、配列内の次のメンバーを見つけて取得することを意味します。ポインターは間違いなく、移動している必要があります

   削除()、このメンバーを削除、

  forEachRemaining()、最初はforEachがありましたが、ここで追加します。使用例:list.iterator()。forEachRemaining(str-> {})これも新しいトラバーサル方法であり、書き込みメソッドが高く、jdk1.8のみが開始されました

forEachはコレクションをトラバースするための新しい方法です。あなたは彼がそれをどのように実装したかを述べました。申し訳ありません。彼のセマンティクスはこのようなものです。ちょうどforループのようです。最下層はアセンブリAJMPジャンプだと言います。

Spliteratorは分割可能なイテレーターですが、何のためのものですか?100万のデータがあり、100万から100万回トラバースする場合、コンピューターが250,000を同時にトラバースすると、4回に分割されるため、トラバースの効率は大幅に向上しませんか?この方法はこの目的で使用されますが、並列にトラバースできるため、考えてみればマルチスレッドトラバースではないでしょうか。新しいドアですか?

 

次は、Iterable <E>のサブインターフェイスコレクション<E>です。このインターフェイスは何をしますか?論争はありません。jdk1.2以降、すべてのコレクションにそのような親インターフェースがあります。

 

 1、size()コレクション要素のサイズを取得します

2. isEmptyが空かどうかを判断する

3.にオブジェクトが含まれているかどうか

4.イテレーター()、病気ですか?Iterableインターフェースにもこのようなメソッドがあり、

5、toArray()は、実際には、配列内のすべての要素を新しい配列に結合することであり、型はObjectです。

6、add()

7.remove()

8.containsAll()、この判断に別の配列が含まれるかどうか、ブール値の戻り値

9.addAll()

10.removeAll()、サブ配列、明らかに親配列のサブセットを削除します

11.removeIf()、実際には、ラムダ式を使用して、remove()要素を統合する方法ですが、条件を記述し、forループから要素を削除する必要があります。効果は同じです。これはイノベーションにとって非常に革新的です。 、そのような方法、読みにくい、味がない

12.retainAll()、コレクションはこのメソッドを呼び出し、パラメーターは別のコレクション、パラメーターのみが元のコレクションのサブセット、返される結果はtrue、このメソッドは新規ではないのはなぜですか?

13.clear()、このメソッドは何をしますか?疑いもなく、コレクション内のすべての要素をクリアしますか?

14.equals()、コレクションオブジェクトが等しいかどうかを判断するには、値が等しいことに注意してください。オブジェクトが等しい場合は、等号を使用できます

15.hashCode()、配列コレクションを計算するためのこのハッシュコード、説明する必要はありません

16.spliterator()、これはIterableと同じですが、インターフェイスの継承後、再度書き換えられますが、なぜですか?この方法でのみ、書き換えの特性を反映できます。ご覧のとおり、オーバーライドが書き込まれています。目的は、スプリッターが呼び出されたときに、親クラスIterableのiterable()を呼び出すようにこのメソッドを設定することです。

 17.stream()、これは並列化できるIteratorに似たstream()です

18.paralleStream()、一種の並列ガジェット、呼び出した後、並列操作を最大限に使用でき、非常にファッショナブルでクールな操作

おすすめ

転載: www.cnblogs.com/cyh2009/p/12707003.html