簡體   English   中英

無法將更多元素添加到ArrayList

[英]Can't add more elements to the ArrayList

我正在嘗試向ArrayList中添加更多元素,但是我收到這些錯誤:

java.util.ConcurrentModificationException
    at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
    at java.util.ArrayList$Itr.next(ArrayList.java:851)
    at Gestor.adicionarProduto(Gestor.java:32)

我要做的第一件事是檢查Arraylist是否為空以添加第一個元素。 而且我正在檢查ArrayList是否不為空以比較和添加更多元素。

   if(!arProduct.isEmpty()){
        for(Produto produto : arProduct){
            String receivePosicao = letraPrateleira.toLowerCase() + nrPosicao;
            String searchPosicao = produto.getLetraPrateleira() + produto.getNrPosicao();

            if(receivePosicao.equals(searchPosicao)){
                System.out.println("Esta posição encontra-se ocupada por outro produto.");
            }else{
                arProduct.add(new Produto(nomeProduto, precoProduto, mensagemAdicional, letraPrateleira, nrPosicao)); 
            }

        }

    }

    if(arProduct.isEmpty(){
        arProduto.add(new Produto("a", 2, "a", "a", 1)); 
    }

我究竟做錯了什么?

謝謝。

您在遍歷列表時添加元素!

將元素添加到臨時列表中,並在迭代后添加它們:

List<Produto> toAdd = new ArrayList<>();
for(Produto produto : arProduct) {
   // ...
   toAdd.add(new Produto(nomeProduto, precoProduto, mensagemAdicional, letraPrateleira, nrPosicao));
}
produto.addAll(toAdd);

遍歷列表時無法修改列表。 如果需要修改列表,則使您的方法返回一個布爾值,然后在外部修改列表。

else語句和第二個if將返回true,這將導致列表被修改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM