将linkedList转换为数组列表时出现ArrayIndexOutOfBoundsException

 有有1988_540 发布于 2023-02-06 12:49

我试图将linkedList转换为ArrayList,如下所示.

private LinkedList myLinkedList= new LinkedList();  
public Collection getData()  
 {
  return new ArrayList(myLinkedList);  
 }

LinkedList可能由多个线程更新.在生产中测试时,我得到以下错误.错误不一致.所以我得到它可能是一个星期,一个月左右.

java.lang.ArrayIndexOutOfBoundsException: 15   
at java.util.LinkedList.toArray(LinkedList.java:866)   
at java.util.ArrayList.(ArrayList.java:131)   
at org.xxx.yyy.zzz.getData(Data.java:291)  

有没有什么办法可以与LinkedList的并发修改有关.感谢任何帮助.

1 个回答
  • toArray失败只是你做一些根本危险的事情的一个症状.

    来自以下文件LinkedList:

    如果多个线程同时访问链表,并且至少有一个线程在结构上修改了列表,则必须在外部进行同步.

    您需要添加同步(不仅仅是为了toArray,但基本上是列表的所有用途),或者使用一个设计为线程安全的并发集合.

    2023-02-06 12:50 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有