概要:
1. コレクション定義: Iterable を継承し、汎用関数を持ち、Collection コレクション システムの最上位の親インターフェイスです。
2、コレクションメソッド: add、addAll、clear、isEmpty、size; toArray (オーバーロード); contains、removeAll、retainAll; まず、定義を見てみましょう。次に、Colleciton 自身のメソッド (継承されたメソッドを除く) を見てみましょう。
1、addとaddAllについて。 どちらもコレクションに要素を追加します (それぞれのサブクラスがそれを具体的に実装します)。
前者は単一の要素を追加するもので、後者はCollectionを実装したサブクラスのコレクションを追加するものです。例 (例では意図的に異なる Collection サブクラスを使用しています): <span style="color: #cc7832">public interface Collection<<span style="color: #507874">E> <span style="color: #cc7832">extends Iterable<<span style="color: #507874">E><br><span style="color: #000000">从定义中我们可以看出Collection是一个带<span style="color: #ff0000">泛型的接口</span>。<br>实现了Iterable接口,也就是说可以使用<span style="color: #ff0000">迭代</span>器。<br>以上两点很重要,其下所有子类均有这两个属性。<br>还有一点大家需要注意Collection集合并<span style="color: #ff0000">没有定义查找</span>的方法。<br><br></span></span></span>
<br>
2、clear、isEmpty、size。
これらのメソッドは比較的単純で大雑把なので、コードは示しません。 clear は、コレクション内のすべての要素をクリアします。 isEmpty は、コレクション内に要素があるかどうかを判断し、空の場合は true を返します。 size はセット内の要素の数を取得します。3、コレクションを配列 toArray に変換することについて。
ToArray オーバーロードされたメソッド。1 つはパラメーターを持たず、既存の配列で数値を渡す必要があります。 まずパラメータなしの Object[] toArray() について話しましょう。これは Object 配列を返すため、ここで問題が発生します。 必要な場合はString[] object = (String[]) collection.toArray();
これを実行すると、ClassCastException
例外がスローされます。 それでは、パラメーターを含む次のコードは次の結果を出力します。これは、どのような場合でも配列オブジェクトが返されることを意味します。
渡された配列の長さがコレクションのサイズより小さい場合、新しい配列が別途返され、渡された配列にはデータが書き込まれません。 渡された配列が結合サイズ以上の場合、受信配列が埋められて配列が返されます。 注: したがって、一般的には、パラメータを持つメソッドの 2 番目のケースを使用する必要があります---指定された配列がセットより小さい場合のケースを出力します-----strings: [null, null]returnStrings : [escore, wym, cl]strings==returnStrings: false
---指定された配列がセットと等しい場合を出力します-----strings: [escore, wym, cl]
returnStrings: [escore 、 wym 、 cl]strings==returnStrings: true
---指定された配列が設定よりも大きい場合を出力します-----strings: [escore, wym, cl, null, null]
returnStrings: [escore, wym, cl, null, null]strings==returnStrings: true
@Testpublic void testAdd(){ Collection<String> collection = new LinkedList<>();//添加一个对象collection.add("person1"); collection.add("person2"); List<String> list = new ArrayList<>(); list.add("person3"); Set<String> set = new HashSet<>(); set.add("person4");//添加一个Collection集合。 collection.addAll(list); collection.addAll(set); collection.forEach(System.out::println);//打印控制台 }
<br><br><br>4<br>Iterator<br><
E
> を返すメソッドについてiterator については、ここではこれ以上説明しませんが、Iterator の内容の言い訳を参照してください。 <br><br><br> <br>
remove、removeAll、retainAll はそれぞれ、コレクション内の要素を削除し、コレクション セットに等しい要素を削除し、コレクション コレクション内の要素に等しい要素を保持します。 なぜこれらをまとめたのでしょうか? ここでは、equals メソッドが関係しています。
つまり、contains は、それが含まれているかどうかをどのように判断するのでしょうか?このメソッドは、受信オブジェクトの equals メソッドを呼び出し、それをコレクション内の要素と 1 つずつ比較します。それらが等しい場合。 containsAll メソッドは、contains メソッドを呼び出すために各要素を配置します。同様に、 Why Remove はどの要素を削除する必要があるかを認識しており、また、equals メソッドを呼び出してコレクション内の要素と 1 つずつ比較します。 RemoveAll と restartAll を使用すると、受信コレクション要素は、remove メソッドを 1 つずつ呼び出します。ただし、前者は同じものを削除し、後者は同じものを保持します。
(Java コレクションのすべてを「Java Basic Collection Framework」のカテゴリーで共有します)
以上がJava での Colleciton の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。