为了使查询出来的数据不受到污染,经常会将数据拷贝到一个可以随意使用的集合中,而在期间的就需要进行copy操作。
以前的我使用循环遍历(for循环)然后存到另一个集合中,但是这样会有很多冗余代码,且for循环影响程序执行效率(数据很多的情况下)
为了简化代码,我找到了Collection中的copy方法,该方法会将原集合数据(src)copy到目的集合(dest)
Collections.copy(List<? super Object> dest, List<? extends Object> src)
而在我使用这个方法的时候却报了下面的错误
Collections.copy 方法报错: Source does not fit in dest
看了Collections.copy的源码:
int srcSize = src.size();
if (srcSize > dest.size())
throw new IndexOutOfBoundsException("Source does not fit in dest");
结果是比较集合大小的,遂放弃
再然后我找到了ArrayList的构造方法
List<T> Blist= new ArrayList<T>(aList);
T可以是实体类,具体自行带入(前提:两个list的泛型(T)相同)
使用上述方法可以直接将aList的数据copy到bList中
注意:使用上述方法数据不会脱离持久化