ArrayList,LinkedListd等容器使用时注意点:

  1、对这两个List(包括其他的类似容器),如果向里面加入一个元素(引用数据类型),那么这个List里面保存的是这个对象的引用;

如果想要避免这种现象可以这样:在加入新的元素时不直接压,将已有的对象复制一份压进去(在此本人推荐如果是自己写的类最好实现Cloneable接口,重载clone函数);

  2、这两个家伙不允许在遍历:

  for(LinkEdList ele : EleList) visit ele;

的时候删去多个元素,不然会抛出异常,当然如果可以保证一次循环下来最多只remove一个元素,而且remove完了直接跳出循环也是没问题的。现在提供一种解决第一种情况的一种方法:在遍历的时候把所有要删除的元素放到一个临时容器内(temp_container),然后等遍历完了调用一下removeAll(temp_container)就完了。

原文地址:https://www.cnblogs.com/guanking19/p/4158834.html