Java HashMap clone() メソッド
clone() メソッドは HashMap をコピーするために使用され、浅いコピーに属します。
拡張:
浅いコピーはオブジェクトを指すポインタのみをコピーし、オブジェクト自体はコピーしません。新旧のオブジェクトは同じメモリを共有するため、一方のオブジェクトがこのアドレスを変更すると、もう一方のオブジェクトに影響を与えます。。。
浅いコピーに対応するのは深いコピーです。深いコピーはオブジェクトをメモリから完全にコピーし、ヒープメモリに新しい領域を確保して新しいオブジェクトを格納します。また、新しいオブジェクトを変更しても元のオブジェクトには影響しません。。
clone() メソッドの構文は次のとおりです:
hashmap.clone()
注:hashmap は HashMap クラスのオブジェクトです。
パラメータの説明:
- 无
戻り値
HashMap インスタンス(オブジェクト)のコピーを返します。
例
以下の例では、clone() メソッドの使用法を示します:
例
import java.util.HashMap;
class Main {
public static void main(String[] args) {
HashMap<Integer, String> sites = new HashMap<>();
sites.put(1, "Google");
sites.put(2, "サンプル");
sites.put(3, "Taobao");
System.out.println("HashMap: " + sites);
// sites をコピー
HashMap<Integer, String> cloneSites = (HashMap<Integer, String>)sites.clone();
System.out.println("Cloned HashMap: " + cloneSites);
}
}
class Main {
public static void main(String[] args) {
HashMap<Integer, String> sites = new HashMap<>();
sites.put(1, "Google");
sites.put(2, "サンプル");
sites.put(3, "Taobao");
System.out.println("HashMap: " + sites);
// sites をコピー
HashMap<Integer, String> cloneSites = (HashMap<Integer, String>)sites.clone();
System.out.println("Cloned HashMap: " + cloneSites);
}
}
上記のプログラムを実行すると、出力結果は次のようになります:
HashMap: {1=Google, 2=サンプル, 3=Taobao}
Cloned HashMap: {1=Google, 2=サンプル, 3=Taobao}
上記の例では、sites という名前の HashMap を作成し、コードの後半で clone() メソッドを使用して sites のコピーを作成しました。
次の式に注意してください:
(HashMap<Integer, String>)sites.clone();
- sites.clone() - コピーされた sites オブジェクトを返します
- (HashMap<Integer, String>) は返されたオブジェクトを HashMap に変換し、そのキー(key)は Integer 型、値(values)は String 型になります。
clone() メソッドの戻り値:
例
import java.util.HashMap;
class Main {
public static void main(String[] args){
// hashmap を作成
HashMap<String, Integer> primeNumbers = new HashMap<>();
primeNumbers.put("Two", 2);
primeNumbers.put("Three", 3);
primeNumbers.put("Five", 5);
System.out.println("Numbers: " + primeNumbers);
// clone() メソッドの戻り値を出力
System.out.println("Return value of clone(): " + primeNumbers.clone());
}
}
class Main {
public static void main(String[] args){
// hashmap を作成
HashMap<String, Integer> primeNumbers = new HashMap<>();
primeNumbers.put("Two", 2);
primeNumbers.put("Three", 3);
primeNumbers.put("Five", 5);
System.out.println("Numbers: " + primeNumbers);
// clone() メソッドの戻り値を出力
System.out.println("Return value of clone(): " + primeNumbers.clone());
}
}
上記のプログラムを実行すると、出力結果は次のようになります:
Prime Numbers: {Five=5, Two=2, Three=3}
Return value of clone(): {Five=5, Two=2, Three=3}
上記の例では、primeNumbers という名前の HashMap を作成し、出力結果は clone() メソッドの戻り値です。
注意:clone() メソッドは HashMap クラスに固有のものではなく、Clonable インターフェースを継承する任意のクラスで clone() メソッドを使用できます。
その他の拡張
Java HashMap