List<Report> dest = new ArrayList<Report>();
dest.addAll(source);  // Source 是源List, 我想复制到dest这个目标List里.但现在当我操作(修改,删除,添加)dest这个目标List里的元素的时候, Source里的数据也会跟着变动....
怎么切断这种联系?  求教.  谢谢

解决方案 »

  1.   

    貌似没有办法,Java中使用的都是引用,只有重写addAll或者实现方法进行复制,Object有个clone方法,类似的来一下
      

  2.   

    Report这个类重写一个colne方法,
    for(Report r:source){
    dest.add(r.clone());
    }
      

  3.   


    dest.addAll((List<Report>)((ArrayList)source).clone());
      

  4.   


    List<ReportList> out = new ArrayList<ReportList>();
    Iterator<ReportList> iter = pass.iterator();
    while(iter.hasNext()){
    ReportList s = (iter.next());
    ReportList dest = new ReportList(s.getCustID(),s.getFoodName(),s.getRates(),s.getQuantity(),s.getCata());
    out.add(dest);
    }
    最后用的这个方法....