Java ArrayList clone() メソッド
clone() メソッドは動的配列をコピーするために使用され、シャローコピーに属します。
補足:
シャローコピーはオブジェクトを指すポインタのみをコピーし、オブジェクト自体はコピーしません。新旧のオブジェクトは同じメモリを共有するため、一方のオブジェクトがこのアドレスを変更すると、もう一方のオブジェクトに影響を与えます。。。
シャローコピーに対応するのはディープコピーです。ディープコピーはオブジェクトをメモリから完全にコピーして、ヒープメモリに新しい領域を確保して新しいオブジェクトを格納します。そして、新しいオブジェクトを変更しても元のオブジェクトには影響しません。。
clone() メソッドの構文は次のとおりです。
arraylist.clone()
注:arraylist は ArrayList クラスのオブジェクトです。
パラメータの説明:
- 无
戻り値
ArrayList オブジェクトを返します。
例
ArrayList clone() メソッドを使用して動的配列をコピーします:
例
import java.util.ArrayList;
class Main {
public static void main(String[] args){
// 配列を作成します
ArrayList<String> sites = new ArrayList<>();
sites.add("Google");
sites.add("サンプル");
sites.add("Taobao");
System.out.println("ウェブサイトリスト: " + sites);
// sites をコピーします
ArrayList<String> cloneSites = (ArrayList<String>)sites.clone();
System.out.println("ArrayList のコピー: " + cloneSites);
}
}
class Main {
public static void main(String[] args){
// 配列を作成します
ArrayList<String> sites = new ArrayList<>();
sites.add("Google");
sites.add("サンプル");
sites.add("Taobao");
System.out.println("ウェブサイトリスト: " + sites);
// sites をコピーします
ArrayList<String> cloneSites = (ArrayList<String>)sites.clone();
System.out.println("ArrayList のコピー: " + cloneSites);
}
}
上記のプログラムを実行すると、出力結果は次のとおりです。
网站列表: [Google, サンプル, Taobao] 拷贝 ArrayList: [Google, サンプル, Taobao]
上記の例では、sites という名前の動的配列を作成しています。次の式に注意してください:
(ArrayList<String>)sites.clone();
- sites.clone()- コピーされた sites オブジェクトを返します
- (ArrayList <String>)- 返された値を String 型の動的配列に変換します
clone() メソッドの戻り値を出力します
例
import java.util.ArrayList;
class Main {
public static void main(String[] args){
// 配列を作成します
ArrayList<String> sites = new ArrayList<>();
sites.add("Google");
sites.add("サンプル");
sites.add("Taobao");
System.out.println("ウェブサイトリスト: " + sites);
// clone() メソッドが返す値を出力します
System.out.println("clone() の戻り値: " + sites.clone());
}
}
class Main {
public static void main(String[] args){
// 配列を作成します
ArrayList<String> sites = new ArrayList<>();
sites.add("Google");
sites.add("サンプル");
sites.add("Taobao");
System.out.println("ウェブサイトリスト: " + sites);
// clone() メソッドが返す値を出力します
System.out.println("clone() の戻り値: " + sites.clone());
}
}
上記のプログラムを実行すると、出力結果は次のとおりです。
网站列表: [Google, サンプル, Taobao] clone() 返回值: [Google, サンプル, Taobao]
上記の例では、sites という名前の動的配列を作成しました。そして、ここで clone() メソッドの戻り値を出力しました。
注意:この clone() メソッドは ArrayList クラス固有のメソッドではありません。CLonable インターフェースを継承した任意のクラスが clone() メソッドを使用できます。
その他の補足
Java ArrayList