1。Javaコレクションフレームワークの概要
Java SEには、一連のクラスとインターフェイスで構成されるJavaコレクションフレームワーク(JCF)が含まれています。その主な機能は、特定の構造で保存されたデータを整理し、特定の方法でこのデータにアクセスすることです。その目標は、オブジェクトコレクションを処理するための一般的なフレームワークを提供し、プログラマーが異なるオブジェクトコレクションを処理するときに使用するエンコードの量を減らすことです。
コレクションクラスのいくつかの違いは、それらが複製要素操作をサポートするかどうかに加えて、要素が順番であるかどうか、およびヌル要素を追加することを許可されているかどうかなどです。 Javaコレクションフレームワークのこれら3つの違いによれば、オブジェクトのストレージ方法は3つのタイプに分けられます。
オブジェクトの並べ替えおよびトラバーサルアクセス操作をサポートするために、Javaコレクションフレームワークにいくつかのインターフェイスが提供されています。
2.コレクションインターフェイスとイテレーターインターフェイス
コレクションオブジェクトによって共有されるいくつかの基本的な方法は、コレクションインターフェイスで定義されています。
| 方法 | 説明する |
| int size() | 現在のコレクションに含まれる要素の数を返します |
| isempyt() | セットに要素が含まれているかどうかを判断します |
| ブールコンテンツ(オブジェクトo) | 指定された要素がコレクションに含まれているかどうかを判断します |
| 追加(オブジェクトo) | コレクションに要素を追加します |
| 削除(オブジェクトo) | コレクションから要素を削除します |
| iterator iterator() | トラバーサーを返して、コレクション内のさまざまな要素にアクセスします |
Iterator Interfaceは、コレクションを横断するために使用されるインターフェイスです。
| 方法 | 説明する |
| hasnext() | コレクションにもっと多くの要素がある場合、メソッドはtrueを返します |
| 次() | コレクションの次の要素を返します |
| 取り除く() | Iteratorによって返される最後の要素を削除します |
1.リストインターフェイス
リストインターフェイスはコレクションインターフェイスから継承され、次の特性があります。
リストインターフェイスで最も一般的に使用される実装クラスは、ArrayListクラスとLinkedListクラスです。
1).ArrayList
プログラムの例:
パッケージlei; java.util.arraylistをインポートします。 java.util.listをインポートします。 public class test {public static void main(string [] args){list list = new arrayList <>(); list.add(1); list.add( "Zhangsan"); list.add(false); list.add( 'a'); list.add(0、 "lisi"); list.add(1); list.remove(1); list.remove(2); list.set(0、 "wangwu"); for(int i = 0; i <list.size(); i ++){system.out.println(list.get(i)); }}}オブジェクトクラスで定義されたequals()メソッドは、オブジェクトがメソッドに渡され、メソッドを呼び出すオブジェクトが同じオブジェクトである場合にのみtrueを返します。同じ状態を持つ2つのオブジェクトは、equals()メソッドを上書きすることにより、同じオブジェクトと見なすことができます。
2).LinkedList
| 方法 | 説明する |
| void addfirst | リンクリストの先頭にオブジェクトを追加する |
| void addlast | リンクリストの最後にオブジェクトを追加します |
| getFirst() | リンクリストの最初の要素を返します |
| getLast() | リンクリストの最後の要素を返します |
| removeFirst() | リンクリストの最初の要素を削除します |
| removelast() | リンクリストの最後の要素を削除します |
プログラムの例:
パッケージlei; java.util.linkedListをインポートします。 java.util.listをインポートします。 public class test2 {public static void main(string [] args){linkedlist l = new linkedlist <>(); L.Add( "Zhangsan"); l.add( "lisi"); l.addfirst(1); L.Addlast(4); System.out.println(l.getFirst()); System.out.println(l.getlast()); l.RemoveFirst(); l.removelast(); for(int i = 0; i <l.size(); i ++){system.out.println(l.get(i)); }}}LinkedList対ArrayListの選択
リストに迅速にアクセスする必要があるが、要素を頻繁に挿入して削除しない場合は、ArrayListを選択する方が良いでしょう。リストを頻繁に挿入して削除する必要がある場合は、LinkedListを選択する必要があります。
2.インターフェイスを設定します
セットインターフェイスは、コレクションインターフェイスから継承し、コレクションインターフェイスのすべてのメソッドも継承します。セットインターフェイスには次の特性があります。
セットインターフェイスの実装に最も一般的に使用されるのは、ハッシュセットクラスとツリーセットクラスです。
1).hashset
Hashsetクラスは、ハッシュアルゴリズムに基づいたセットインターフェイス実装です。次の特性があります。
書いたクラスがEqualsメソッドを再定義する場合、このクラスはHashCode()メソッドを再定義し、2つのオブジェクトの結果をEqualsメソッドと比較した場合、2つのオブジェクトのHashCode()メソッドのreturn値が等しいことを確認する必要があります。
プログラムの例:
パッケージlei; java.util.hashsetをインポートします。 java.util.setをインポートします。 public class test4 {public static void main(string [] args){set <string> set = new Hashset <String>(); set.add( "Zhangsan"); set.add( "lisi"); for(string s:set){system.out.println(s); }}}2).treeset
ツリーセットクラスは、クラスセットインターフェイスを実装するだけでなく、ソートセットインターフェイスを実装して、コレクション内のオブジェクトが特定の順序でソートされるようにします。オブジェクトがツリーセットコレクションに追加されると、オブジェクトの順序付けられたシーケンスに挿入されますが、この種はオブジェクトが追加される順序でソートされていませんが、特定のアルゴリズムに従ってソートされます。
ツリーセットは、要素の自然な順序で要素をソートするか、セットが作成されたときに提供されたコンパレータに従って並べ替えます。ツリーセットは、自然な並べ替えとカスタムソートの2つの並べ替え方法をサポートしています。
3.マップインターフェイス
マップ(マップ)インターフェイスは、Javaコレクションフレームワークのもう1つの重要なインターフェイスであり、コレクションインターフェイスとは異なります。これは、キーから値への対応する関係のコレクションに対応します。マップオブジェクトコンテナにはオブジェクトの2つのグループがあり、1つのオブジェクトのグループがマップ内のキーを保存するために使用され、もう1つのグループは値を保存するために使用されます。キーと値は、任意の参照タイプのデータをアップグレードできます。キーを繰り返すことはできませんが、値を繰り返すことができます。
1).hashmap
HashMapは、ハッシュアルゴリズムに基づいたMAPインターフェイスの実装です。 Hashmapは、メンテナンスのためにハッシュテーブルにキーを保存し、キーは一意です。ただし、HashMapは、キーが特定の順序で配置されていること、特に順序が永久に変更されていないことを保証するものではありません。
HashMapクラスはマップインターフェイスを実装しているため、MAPインターフェイスのすべてのメソッドがあります。
パッケージDay1228; Java.util。*をインポートします。 public class hashmapdemo {public static void main(string [] args){//新しいHashmap Map <String、String> Map = new Hashmap <String、String>(); map.put( "a1"、 "xiao"); map.put( "b2"、 "xiaol"); map.put( "a4"、 "xiaosd"); map.put( "b1"、 "12a"); map.put( "a3"、 "1"); // iteratorを使用して、キーと値システムをトラバースします。 <string> keys = map.keyset()を設定します。 for(iterator <string> i = keys.iterator(); i.hasnext();){string key = i.next();文字列値= map.get(key); System.out.println(key + "=" + value); } //キー「a4」system.out.println( "/ndelete key value a4")で値を削除します。 map.remove( "a4"); // // iteratorを使用してキーと値System.out.println( "/nマップ値:"); keys = map.keyset(); for(iterator <string> i = keys.iterator(); i.hasnext();){string key = i.next();文字列値= map.get(key); System.out.println(key + "=" + value); }}}2).TREEMAP
TreeMapクラスは、赤と黒の木のアルゴリズムに基づくMAPインターフェイスの実装です。 Treemapのキーのストレージ方法は、Treesetに似ています。キーを木に保管し、キーの順序は自然な順序またはカスタムオーダーで配置されます。
プログラムの例:
パッケージDay1228; Java.util。*をインポートします。 public class treemapdemo {public static void main(string [] args){//新しいtreemap map <integer、string> map = new treemap <integer、string>(); map.put(1、 "one"); map.put(2、 "2"); map.put(3、 "3"); map.put(4、 "4"); map.put(5、 "5"); // iteratorを使用してキーと値を表示しますsystem.out.println( "前のマップ値は:"); set <integer> keys = map.keyset(); for(オブジェクトキー:keys){string value = map.get(key); System.out.println(key+"="+value); } //キー3 system.out.printlnの値を削除する( "/ndelete key value 3"); map.remove(3); // iteratorを使用してキーと値のシステムを表示します。 for(オブジェクトキー:keys){string value = map.get(key); System.out.println(key+"="+value); }}}上記はこの記事のすべての内容です。この記事の内容が、すべての人の勉強や仕事に役立つことを願っています。また、wulin.comをもっとサポートしたいと思っています!