码迷,mamicode.com
首页 > 编程语言 > 详细

Java - 复制ArrayList

时间:2015-08-13 06:43:10      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

有时候当我们需要复制ArrayList时,最快的方法是新建一个实例,其实每个Collection类都有一个对应的通过自己复制的构造方法。clone()方法本身是有缺陷的,不推荐使用。推荐的做法如下:

List<Double> original = // some list
List<Double> copy = new ArrayList<Double>(original);

这个问题是在做HBase项目时发现的,当Scanner获得下一个结果时,如果直接将结果add进结果集并重用ArrayList的话,最后结果集里面的内容将会是最后一个结果的重复。

修改后的代码:

List<Cell> curVals = new ArrayList<Cell>();
List<List<Cell>> results = new ArrayList<List<Cell>>();
boolean finish = false;
do {
    curVals.clear();
    finish = scanner.next(curVals);
    List<Cell> tmp = new ArrayList<Cell>(curVals); // 复制中间结果 
    results.add(tmp);
} while (finish);

文章原文链接:http://stackoverflow.com/questions/715650/how-to-clone-arraylist-and-also-clone-its-contents

Java - 复制ArrayList

标签:

原文地址:http://my.oschina.net/LinJeffrey/blog/491663

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!