我有一个列表
因为我使用的列表是通过web服务填充的,并且它包含数百个对象,所以我不能使用上面的技术。还是我用错了??!!无论如何,为了让它工作,我尝试这样做,但我仍然得到了< code > IndexOutOfBoundsException
。
List<SomeBean> wsList = app.allInOne(template);
List<SomeBean> wsListCopy=new ArrayList<SomeBean>(wsList.size());
Collections.copy(wsListCopy,wsList);
System.out.println(wsListCopy.size());
我尝试使用wsListCopy=wsList.subList(0,wsList.size())
,但我在代码的后面得到了一个并发访问异常
。点击并试用。:)
不管怎样,我的问题很简单,我如何将我的列表的全部内容复制到另一个列表中?当然,不是通过迭代。
originalArrayList.addAll(copyArrayofList);
请记住,每当使用addAll()方法进行复制时,对相同对象的数组列表(原始ArrayList和复制ArrayofList)引用的内容都将添加到列表中,因此如果您修改其中任何一个,则复制ArrayofList也将反映相同的更改。
如果不想产生副作用,那么需要将每个元素从originalArrayList复制到copyArrayofList,就像使用for或while循环一样。对于深度复制,可以使用下面的代码片段。
但还有一件事需要做,即实现<code>可克隆</code>接口,并重写SomeBean类的<code>clone()</code〕方法。
public static List<SomeBean> cloneList(List<SomeBean> originalArrayList) {
List<SomeBean> copyArrayofList = new ArrayList<SomeBean>(list.size());
for (SomeBean item : list) copyArrayofList.add(item.clone());
return copyArrayofList;
}
这是一个非常好的Java 8方法:
List<String> list2 = list1.stream().collect(Collectors.toList());
当然这里的好处是你可以过滤和跳转到只复制部分列表。
e. g. g.
//don't copy the first element
List<String> list2 = list1.stream().skip(1).collect(Collectors.toList());
只需使用这个:
List<SomeBean> newList = new ArrayList<SomeBean>(otherList);
注意:仍然不是线程安全的,如果您从另一个线程修改其他列表
,那么您可能希望将该其他列表
(甚至newList
)设置为CopyOnWriteArrayList
,例如-或者使用锁原语,例如ReentantReadWriteLock来序列化对并发访问的任何列表的读/写访问。
问题内容: 我正在研究数据结构和链表,但是我没有得到如何制作链表副本的概念。有人可以使用伪代码或C代码进行解释吗? 问题答案: 复制链表的逻辑是递归的,并且基于以下观察结果: 空列表的克隆是空列表。 具有第一个节点x和其余节点xs的列表的克隆是x的副本,该副本位于xs的克隆之前。 如果您使用C ++对链表进行编码,则可以很干净:
我想将table 1的内容复制到table 2中,但它不是直接复制,因为table 2包含的列比表1多。结构类似于这样: 表 1 { 列 2 列 4 列 6 } 表2{column1 column2 column3 column4 column5 column6} 我想做的是将table1到table2中的每一行相加,并为缺少的列设置默认值。任何帮助都将不胜感激。
我有一个列表,其中包含以下元素: 和另一个对象,比如: 我有Element1的列表,并希望从Element1创建Elements2: 我正在寻找以更简单的方式执行此操作,也许使用 stream()。实现这一目标的最干净方法是什么?
您好,我正在尝试将一个表从一个docx文件复制到另一个docx文件,但实际情况是,该表的值在新文档中的表下方和表外部被复制(请参见下面的图片) Talbe在新的docx里 正如您所见,表的值被复制到表的外部。我使用的是Libre Office,ApachePOI版本3.17,我的电脑运行的是Ubuntu 16.04 我用来执行复制的代码如下
问题内容: 我需要遍历for循环的每次迭代的值集,但仅对于第一次迭代,它可以正常工作。此后返回。 我很清楚这种行为。 一种解决方案是在for循环中调用方法,因此对于每个for循环迭代,都会对其进行初始化。但这是非常无效的方法,因为它是独立的。 我尝试了此方法,但由于它仅包含参考,因此也无法正常工作。 有什么方法可以将迭代器复制到另一个或其他更好的方法中? 问题答案: An 是可能的最小API,可以
问题内容: 我想在MySQL中将数据从一个表复制到另一个表。 表1(现有表): 表2(新表) 我想将一些数据字段从表1复制到表2。 可以使用MySQL查询完成吗? 问题答案: 这将做您想要的: 如果要包括table1中的所有行。否则,如果只想添加table1的子集,则可以在末尾添加WHERE语句。 我希望这有帮助。