JavaのConcurrentHashMap clear()メソッドの使い方を解説
ConcurrentHashMapクラスのclear()メソッドは、マップに格納されているすべてのキーと値のペア(マッピング)を一括で削除するために使用されます。このメソッドを呼び出すと、ConcurrentHashMap内の全エントリが消去され、空のマップになります。なお、ConcurrentHashMapはスレッドセーフなコレクションであるため、clear()操作もマルチスレッド環境下で安全に利用できます。
構文
public void clear()
引数は不要で、戻り値もありません。それでは、実際の使用例を見てみましょう。
使用例
import java.util.concurrent.ConcurrentHashMap;
import java.util.*;
public class Demo{
public static void main(String[] args){
Map<String, String> my_map = new ConcurrentHashMap<String, String>();
my_map.put("This", "35");
my_map.put("is", "78");
my_map.put("sample", "99");
System.out.println("The map contains the below elements " + my_map);
my_map.clear();
System.out.println("The elements after the clear function is called on it " + my_map);
}
}実行結果
The map contains the below elements {This=35, is=78, sample=99}
The elements after the clear function is called on it {}コードの解説
このプログラムでは、「Demo」という名前のクラスにmainメソッドが定義されています。処理の流れは以下の通りです。
まず、Map<String, String>型の変数としてConcurrentHashMapの新しいインスタンスを作成します。次に、put()メソッドを使用して3つのキーと値のペアをマップに追加します。追加後の時点でマップの内容を表示すると、{This=35, is=78, sample=99}という3つの要素が出力されます。
続いて、clear()メソッドを呼び出すことで、マップ内のすべての要素が削除されます。最後に再度マップを表示すると、中身が空になっていること({}と出力されること)が確認できます。
ポイントまとめ
- clear()メソッドは、マップ内の全エントリを削除し、サイズを0にします。
- 削除された要素は元に戻せないため、必要なデータは事前にバックアップしておくことをおすすめします。
- ConcurrentHashMapの場合、clear()は他のスレッドによる読み書きと並行して安全に動作します。
-
JavaのMapをJSONに変換する3つの方法(Jackson・Gson・org.json)
JavaのMap(マップ)をJSONに変換する方法はいくつかあります。Javaでは、配列やMapとJSONの相互変換を行う場面が非常に多く、Web APIとのデータ連携などでも欠かせない処理です。 この記事では、代表的なライブラリであるJackson、Gson、org.jsonを使用して、JavaのMapをJSONに変換する3つの具体例をサンプルコード付きで解説します。 Jacksonを使ってJavaのMapをJSONに変換する 最初の例では、Jackson Core と Jackson Databind を使ってJavaのMapをJSONに変換します。 Jacksonライブラリを使用するには
-
JavaでMapを反復処理する4つの方法:entrySet、keySet、Iterator、forEach徹底解説
この記事では、JavaでMap(マップ)をループ処理するためのさまざまな方法を紹介します。Java 8以降では、従来のfor文やIteratorクラスに加えて、forEachメソッドを使った簡潔な反復処理も可能になりました。用途に応じて最適な手法を選べるよう、代表的な4つのパターンをサンプルコードとともに解説していきます。 1. エントリー(キーと値)をまとめて反復処理する キーと値の両方を扱いたい場合は、entrySet()メソッドを使うのが最も一般的で効率的な方法です。Map.EntryからgetKey()とgetValue()でそれぞれ取得できます。 Map<Integer, In