Chi*_*nta 0 java linked-list arraylist
我试图将linkedList转换为ArrayList,如下所示.
private LinkedList<myData> myLinkedList= new LinkedList<myData>();  
public Collection<myData> getData()  
 {
  return new ArrayList<myData>(myLinkedList);  
 }
Run Code Online (Sandbox Code Playgroud)
LinkedList可能由多个线程更新.在生产中测试时,我得到以下错误.错误不一致.所以我得到它可能是一个星期,一个月左右.
java.lang.ArrayIndexOutOfBoundsException: 15   
at java.util.LinkedList.toArray(LinkedList.java:866)   
at java.util.ArrayList.<init>(ArrayList.java:131)   
at org.xxx.yyy.zzz.getData(Data.java:291)  
Run Code Online (Sandbox Code Playgroud)
有没有什么办法可以与LinkedList的并发修改有关.感谢任何帮助.
toArray失败只是你做一些根本危险的事情的一个症状.
来自以下文件LinkedList:
如果多个线程同时访问链表,并且至少有一个线程在结构上修改了列表,则必须在外部进行同步.
您需要添加同步(不仅仅是为了toArray,但基本上是列表的所有用途),或者使用一个设计为线程安全的并发集合.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           1175 次  |  
        
|   最近记录:  |