ホームページ  >  記事  >  Java  >  Javaのマッピングとは何ですか

Javaのマッピングとは何ですか

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼オリジナル
2019-11-12 16:57:1211636ブラウズ

Javaのマッピングとは何ですか

#セットは、既存の要素をすばやく見つけることができるコレクションです。ただし、要素を表示するには、探している要素の正確なコピーが必要です。コレクション内の要素を見つけるには常にコレクションを走査する必要があるため、これはあまり一般的な検索方法ではありません。多くの場合、あるキーに関する情報がわかっていて、それに対応する要素を見つけたいと考えます。地図データ構造はこの目的のために設計されています。マップはキーと値のペアを保存するために使用されます。キーが指定されている場合は、値を検索できます。それらの間には 1 対 1 の対応関係があります。

基本的なマッピング操作:

Java クラス ライブラリには、マッピング用の 2 つの一般的な実装、HashMap と TreeMap が用意されています。どちらも Map インターフェイスを実装します

HashMap はキーをハッシュし、TreeMap は要素をキーの全体的な順序で並べ替えて検索ツリーに編成します。

ハッシュ関数または比較関数はキーに対してのみ機能します。キーに関連付けられた値をハッシュしたり比較したりすることはできません。

セットと同様、ハッシュ マップはツリー マップよりもわずかに高速であるため、ソートされた順序でキーにアクセスする必要がない場合は、ハッシュ マップを使用するのが最善です。

OP->>キーと値のストレージを実行するには、put メソッドを使用する必要があります

OP->>キーと値のアクセスを実行するには、get メソッドを使用する必要があります値にアクセスするには

OP->>値が見つからないが空のオブジェクトを返したくない場合は、getOrDefault(var1,var2) を使用します。見つかった場合は、var2 を返します。

キーは一意でなければなりません。マッピングのペアで put メソッドが 2 回呼び出された場合、後の呼び出しで前の呼び出しが上書きされます。そして、最初の呼び出しの結果を返します

OP->>キーと値のペアを削除するには、remove(key) メソッドを使用します

OP->>キーと値のペアの数を指定するには、size() メソッドを使用します。

OP->>各キーと値を反復処理するには、forEach メソッドを使用するのが最善です。ラムダ式を指定できます。マップ内の各要素を順番に処理します。

scores.forEach((k,v)->System.out.println("key=" k ",value=" v));# と同様

##次のサンプル プログラムは、マッピング操作プロセスを示しています。まず、キーと値のペアがマッピングに追加されます。次に、キーがマップから削除され、それに対応する値も削除されます。次に、特定のキーに対応する値を変更し、get メソッドを呼び出してこの値を表示します。最後に、一連のエントリが繰り返し処理されます。

コード:

package Collection.Map;
 
import java.util.*;
 
public class MapTest {
public static void main(String[] args) {
Map<String,Employee> staff=new HashMap<>();
staff.put("144-25-5464", new Employee("Amy Lee"));
staff.put("567-24-2546", new Employee("Harry Hacker"));
staff.put("157-62-7935", new Employee("Gary Cooper"));
staff.put("456-62-5527", new Employee("Francesca Cruz"));
//打印所有成员
System.out.println(staff);
//删除某一成员
staff.remove("567-24-2546");
//替代一个成员
staff.put("456-62-5527", new Employee("Francesca Miller"));
//查看一个成员
System.out.println(staff.get("157-62-7935"));
//遍历映射
staff.forEach((k,v)->System.out.println("key="+k+",value="+v));
}
}
 
class Employee{
String name;
 
public Employee(String name) {
this.name = name;
}
 
public String toString() {
return "[name="+name+"]";
}
}

実行結果:

Javaのマッピングとは何ですか

次に、インターフェース Map でよく使用されるいくつかのメソッドとその説明を示します。 :

V get(Object key)

キーに対応する値を取得; キーに対応するオブジェクトを返す、またはキーに対応するオブジェクトがない場合は返すマッピング内のそのようなオブジェクトは null です。キーは null にすることもできます。

default V getOrDefault(Object key,V defaultValue)

キーに関連付けられた値を取得します。キーに関連付けられたオブジェクトを返します。キーが見つからない場合は、オブジェクトを返します。マップキーでは、defaultValue を返します。

V put(K key,V value)

キーと対応する値の関係をマップに挿入します。キーがすでに存在する場合、そのキーに対応する古いオブジェクトが新しいオブジェクトに置き換えられます。このメソッドは、キーに対応する古い値を返します。このキーが以前に出現したことがない場合は null を返します。キーは null にすることができますが、値は null にすることはできません。

void putAll(Map extends K,? extends V> events)

指定されたマップ内のすべてのエントリをこのマップに追加します。

boolean containsKey(Object key)

このキーがマップ内にすでに存在する場合は true を返します。

boolean containsValue(オブジェクト値)

この値がマッピングにすでに存在する場合は、true を返します。

default void forEach(BiConsumer super K,? super V> action)

このアクションをこのマップ内のすべてのキー/値に適用します。

HashMap クラスで一般的に使用されるメソッドは次のとおりです:

HashMap()

HashMap(intInitialCapacity)

HashMap (intInitialCapacity, floatloadFactor)

指定された容量とフィルファクターを使用して空のハッシュマップを構築します (フィルファクターは 0.0 から 1.0 までの値です。この値により、ハッシュ テーブルのフィル パーセンテージが決まります。これに達すると、比率を大きくするには、より大きなテーブルにハッシュする必要があります)。デフォルトのリロード係数は 0.75 です。

TreeMap クラスで一般的に使用されるメソッドは次のとおりです。

TreeMap()

を実装するキーを構築します。同等のインターフェイス 空のツリー マップ。

TreeMap(Comparator super K> c)

ツリー マップを構築し、指定されたコンパレータを使用してキーを並べ替えます。

TreeMap(Map extends K,? extends V> events)

ツリー マップを構築し、マップ内のすべてのエントリをツリー マップの中央に追加します。

TreeMap(SortedMap extends K,? extends V> エントリ)

指定された順序付きマップと同じコンパレータを使用して、特定の順序付きマップ内のすべてのエントリをツリー マップに追加するツリー マップを構築します。

SortedMap インターフェイスの重要なメソッドのいくつかを次に示します:

##Comparator super K> comparator()

Returnキーをソートするためのコンパレータ。 Comparable インターフェイスの comparaTo メソッドを使用してキーを比較すると、null が返されます。

K firstKey()

K lastKey()

マップ内の最小要素と最大要素を返します。

php 中国語 Web サイト、無料の

Java 入門チュートリアル が多数あり、オンラインで学習することを歓迎します。

以上がJavaのマッピングとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。