Java 8 の Map.replaceAll()
メソッドを使用して、すべての値を String 型に変換できます。
Map<String, Object> map = new HashMap<>(); // 添加一些键值对 map.put("key1", 123); map.put("key2", true); map.put("key3", new Date()); // 将所有的值转为 String 类型 map.replaceAll((k, v) -> String.valueOf(v));
上記のコードは map を実行します。
すべての値は String 型に変換されます。
HashMap は、Java で最も広く使用されているコレクション クラスの 1 つで、大量のデータの保存とアクセスに使用できる、非常に高速なキーと値のペアの保存方法です。 HashMap の一般的なメソッドをいくつか示します。
put(key, value)
: キーと値のペアを HashMap に追加します。
HashMap<String, Integer> map = new HashMap<>(); map.put("apple", 1); map.put("banana", 2);
get(key)
: キーに基づいて対応する値を取得します。
Integer value = map.get("apple");
containsKey(key)
: 指定されたキーが HashMap に含まれているかどうかを判断します。
if (map.containsKey("apple")) { // ... }
containsValue(value)
: ハッシュマップに指定された値が含まれているかどうかを判断します。
if (map.containsValue(1)) { // ... }
remove(key)
: キーに基づいて HashMap 内のキーと値のペアを削除します。
map.remove("apple");
keySet()
: HashMap 内のすべてのキーのセットを返します。
Set<String> keys = map.keySet();
values()
: HashMap 内のすべての値のコレクションを返します。
Collection<Integer> values = map.values();
entrySet()
: HashMap 内のすべてのキーと値のペアのセットを返します。
Set<Map.Entry<String, Integer>> entries = map.entrySet();
上記は一般的に使用される HashMap メソッドです。他のメソッドもあります。詳細については、関連ドキュメントを確認してください。
HashMap は主にハッシュ アルゴリズムとストレージ用の配列を使用します。 HashMap では、各キーと値のペアは、「バケット」または「スロット」と呼ばれる配列内の要素に対応します。
配列のインデックス値はハッシュ アルゴリズムによって計算され、各バケットにはキーと値のペアを格納するリンク リストが格納されます。異なるキーと値のペアによって計算されたインデックス値が同じである場合、これらのキーと値のペアは同じバケットに配置され、リンクされたリストの形式でバケットに保存されます。これが HashMap の競合解決方法です。
HashMap のストアド プロシージャは次のとおりです。
put
メソッドを使用してキーと値のペアを HashMap に追加する場合、 key は最初に hashCode
になります。value は配列のインデックス位置を計算します。具体的な方法は、hashCode
値に対していくつかの操作を実行して、配列インデックス値を取得することです。このインデックス値は、配列内のキーと値のペアの位置です。
配列内の位置が空の場合は、この位置にキーと値のペアを直接格納して、加算操作を完了できます。
その場所にキーと値のペアがすでに存在する場合は、キーの equals
メソッドを比較して、キーの値を更新するかどうかを判断する必要があります。キーと値のペア、または新しいキーと値のペアを追加します。
リンク リストの長さが長い場合、検索時にリンク リスト全体を走査する必要があるため、HashMap のパフォーマンスに影響が出る可能性があります。
この目的を達成するために、Java 8 では、リンク リストをツリーに変換してパフォーマンスを向上できる「Red-Black Tree」データ構造が導入されました。マルチスレッド環境で使用する場合、HashMap の非スレッド安全性により例外が発生する可能性があることに注意してください。マルチスレッド環境で HashMap を使用する必要がある場合は、ConcurrentHashMap メソッドまたは Collections.synchronizedMap メソッドを使用してスレッド セーフを実現できます。
以上がJava Mapのすべての値をString型に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。