Javaでマップインターフェイスを実装する方法は?



Java Map Intefaceに関するこの記事は、MapがJavaでどのように機能するかを理解するのに役立ち、MapInterfaceを実装するさまざまなクラスを紹介します。

Javaで最も興味深いトピックの1つは、マップインターフェイスです。キーと値の間のマッピングを表します。のサブタイプであると誤解されることがよくあります Javaのインターフェース。Java Map Interfaceに関するこの記事は、マップがどのように機能するかを理解し、習得するのに役立ちます。 。

この記事で取り上げるトピックは次のとおりです。





Javaマップインターフェイス

Javaのマップは オブジェクト キーを値にマップし、ルックアップを高速化するように設計されています。データはキーと値のペアで保存され、すべてのキーは一意です。各キーは値にマップされるため、名前がマップされます。これらのキーと値のペアは、マップエントリと呼ばれます。

Javaのマップ-Javaマップインターフェイス-Edureka



の中に 、 java.util.Map は これには、キーに基づいて要素を挿入、削除、および取得するためのメソッドシグネチャが含まれます。このような方法を使用すると、辞書などのキーと値の関連付けのマッピングに使用するのに最適なツールです。

マップインターフェースの特徴

  • したがって、マップインターフェイスはコレクションインターフェイスの真のサブタイプではありません。その特性と動作は、他のコレクションタイプとは異なります。
  • それは提供します3つのコレクションビュー–キーのセット、キーと値のマッピングのセット、および値のコレクション。
  • 地図重複するキーを含めることはできず、各キーは最大で1つの値にマップできます。一部の実装では、nullキーとnull値を許可します (( HashMapとLinkedHashMap しかし、そうでないものもあります (( TreeMap)。
  • マップインターフェースはマッピングの順序を保証しませんが、実装によって異なります。例えば、 HashMap マッピングの順序を保証するものではありませんが TreeMap します。
  • AbstractMapクラスは、JavaMapインターフェースとほとんどのMap具象の骨格実装を提供します。 クラス AbstractMapクラスを拡張し、必要なメソッドを実装します。

これで、どのマップインターフェイスが含まれるかがわかりました。 つまり、先に進んでJavaMapの階層を確認しましょう。

Javaマップ階層

JavaでMapを実装する2つのインターフェースがあります:Mapと SortedMap。そして、JavaでのMapの人気のある実装クラスは HashMap、TreeMap 、および LinkedHashMap。 Javaマップの階層を以下に示します。



シェフvsパペットvsansible

上記のJavaMap Interfaceの3つの実装クラスを確認する前に、Mapを操作するときに遭遇する可能性のあるいくつかの一般的なメソッドを次に示します。

Javaマップインターフェイスのメソッド

メソッド

説明

public put(オブジェクトキー、オブジェクト値)このメソッドは、マップにエントリを挿入します
公衆void putAll(マップマップ)このメソッドは、指定されたマップをこのマップに挿入します
パブリックオブジェクトremove(オブジェクトキー)指定されたキーのエントリを削除するために使用されます
public Set keySet()すべてのキーを含むセットビューを返します
public Set entrySet()すべてのキーと値を含むセットビューを返します
void clear()マップをリセットするために使用されます
public void putIfAbsent(K key、V value)まだ指定されていない場合にのみ、指定された値を指定されたキーとともにマップに挿入します
public Object get(Object key)指定されたキーの値を返します
public boolean containsKey(Object key)
このマップから指定されたキーを検索するために使用されます

マップの実装

いくつかあります Javaマップを実装するしかし、3つの主要な汎用実装はHashMap、TreeMap、およびLinkedHashMap。例を挙げて、各実装の特性と動作を見てみましょう。

HashMapクラス

Java Mapインターフェースを実装する最も一般的なクラスは、HashMapです。これは、マップインターフェイスのハッシュテーブルベースの実装です。すべてのマップ操作を実装しますnull値と1つのnullキーを許可します。また、このクラスはその要素間の順序を維持しません。これは、HashMapクラスを示すサンプルプログラムです。

package MyPackage importjava.util。* class HashMapExample {public static void main(String [] args){マップコース= new HashMap()//いくつかのコースを追加します。 courses.put( 'Javaコース'、新しい整数(6))courses.put( 'クラウドコース'、新しい整数(7))courses.put( 'プログラミングコース'、新しい整数(5))courses.put( 'データサイエンスコース '、新しいInteger(2))System.out.println('合計コース: '+ courses.size())セットst = courses.entrySet()for(Map.Entry me:st){System.out.print(me.getKey()+ ':')System.out.println(me.getValue())} System.out。 println()String searchKey = 'Javaコース' if(courses.containsKey(searchKey))System.out.println( 'Found total' + courses.get(searchKey)+ '' + searchKey)}}

出力

合計コース:4クラウドコース:7プログラミングコース:5データサイエンスコース:2Javaコース:6合計6つのJavaコースが見つかりました

上記のプログラムでは、表に記載されている多くの方法を使用しました。まず、 put() メソッドは4つのエントリをマップに挿入し、 サイズ() 次のステップのメソッドは、マップのサイズ(キーと値のペアの合計)を表示します。その後、次のステップで、 entrySet() メソッドは、すべてのキーと値のペアを返します。プログラムはまた利用する方法を示します 取得する() 関連するキーを使用して値を検索する方法。

Java MapInterfaceを実装する次のクラスであるTreeMapに移りましょう。

TreeMapクラス

この実装では、基礎となる赤黒木を使用します データ構造 。 TreeMapは、キーの自然な順序に従って、または作成時に提供されたコンパレータによってソートされます。この実装ではnullは許可されませんが、その要素の順序。これは、TreeMapクラスを示すサンプルプログラムです。

package MyPackage importjava.util。* class TreeMapEx {public static void main(String [] args){マップコース= new TreeMap()//いくつかのコースを追加します。 courses.put( 'Javaコース'、新しい整数(3))courses.put( 'AWSコース'、新しい整数(7))courses.put( 'プログラミングコース'、新しい整数(8))courses.put( 'データサイエンスコース '、新しいInteger(2))System.out.println('合計コース: '+ courses.size())セットst = courses.entrySet()for(Map.Entry me:st){System.out.print(me.getKey()+ ':')System.out.println(me.getValue())} System.out。 println()}}

出力

合計コース:4 AWSコース:7データサイエンスコース:2Javaコース:3プログラミングコース:8

出力では、マップの要素は厳密な辞書式順序で印刷されます。これは、HashMapの前の例には表示されません。私たちが議論しようとしている次のクラスは LinkedHashMap

LinkedHashMapクラス

名前が示すように、Java Mapインターフェースのこの実装は、基礎となるデータ構造としてハッシュテーブルとリンクリストを使用します。したがって、LinkedHashMapの順序は次のとおりです。デフォルトの順序として挿入順序を使用して、予測可能。また、HashMapのようにnullを許可します。これは、TreeMapクラスを示すサンプルプログラムです。

package MyPackage importjava.util。* public class LinkedHashMapExample {public static void main(String a []){LinkedHashMapcourses = new LinkedHashMap()courses.put( 'Java Courses'、new Integer(3))courses.put( ' Cloud Courses '、new Integer(7))courses.put(' Programming Courses '、new Integer(8))courses.put(' Data Science Courses '、new Integer(2))//要素を同じ順序で出力します//挿入されたとおりSystem.out.println(courses)System.out.println( '合計コース:' + courses.size())System.out.println( 'キーを含む' Hadoop '?' + courses.containsKey ( 'Hadoop'))System.out.println( 'キーの値の取得'プログラミングコース ':' + courses.get( 'プログラミングコース'))System.out.println( 'マップは空ですか?' + courses.isEmpty ())System.out.println( 'delete element' Cloud Courses ':' + courses.remove( 'CloudCourses'))System.out.println(courses)}}

出力

{Javaコース= 3、クラウドコース= 7、プログラミングコース= 8、データサイエンスコース= 2}合計コース:4キー「Hadoop」が含まれていますか? falseキー「プログラミングコース」の値の取得:8マップは空ですか? falsedelete要素 'クラウドコース':7 {Javaコース= 3、プログラミングコース= 8、データサイエンスコース= 2}

サンプルプログラムは非常に簡単に理解できます。 JavaでのLinkeHashMapの機能を示すために、いくつかの基本的な方法を使用しました。前に言ったように、これら3つ以外にも、JavaMapインターフェースを実装するクラスがたくさんあります。

これで、この「JavaMapInterface」の記事は終わりです。 Javaの興味深いトピックの1つである、JavaのMapインターフェイスについて説明しました。

できるだけ練習し、経験を元に戻してください。

チェックしてください 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。私たちはあなたの旅のすべてのステップであなたを助けるためにここにいます、このJavaインタビューの質問に加えてなるために、私たちはJava開発者になりたい学生と専門家のために設計されたカリキュラムを考え出します。

質問がありますか?この「Javaマップインターフェイス」のコメントセクションで言及してください 記事と私たちはできるだけ早くあなたに返信します。