Rumah  >  Artikel  >  Java  >  java实现list的拷贝

java实现list的拷贝

王林
王林ke hadapan
2020-09-11 15:51:152096semak imbas

java实现list的拷贝

背景:

一开始是想的在进入一个新页面的时候复制一份集合,留着后续操作,直接就写了  List A=List B,后面发现在操作B的时候,A里面的数据也会跟着变化。

(视频教程推荐:java课程

通过查询发现,原来直接用“=”是相当于java中相同内容的数组指向同一地址,即进行浅拷贝后A与B指向同一地址。造成的后果就是,改变B的同时也会改变A,因为改变B就是改变B所指向地址的内容,由于A也指向同一地址,所以A与B一起改变。复制一份独立的数组可以使用下面的方法:

public class GoodsBean extends HttpResult implements Cloneable{
@Override
protected Object clone() throws CloneNotSupportedException {
    GoodsBean o = null;
    try {
        o = (GoodsBean) super.clone();
    } catch (CloneNotSupportedException e) {
        e.printStackTrace();
    }
    return o;
}
public  ArrayList<GoodsBean> deep_clone(ArrayList<GoodsBean> cells, ArrayList<GoodsBean> clone_cells){
    for(GoodsBean c : cells){
        try {
            clone_cells.add((GoodsBean) c.clone());
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
    }
    return clone_cells;
}
}

相关推荐:java入门教程

Atas ialah kandungan terperinci java实现list的拷贝. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam