两个Arraylist在更新java.util.ConcurrentModificationException之后进行比较

时间:2018-09-25 11:19:08

标签: java android arraylist

比较两个Arraylist并在两个arraylist中的相同元素值之后比较第二个元素中的一个Arraylist Value更新。同一元素发现时间会出错:enter image description here

for (Thumbnail thumbnail : videoList1){

    for (Giphy giphy : giphyList) {


        if (thumbnail.getVideoID().equals(giphy.getVideoID())) {

            thumbnail.setThumbUp(giphy.getThumbUp());
            thumbnail.setThumbDown(giphy.getThumbDown());
            videoList1.add(thumbnail);
        }
    }

}

2 个答案:

答案 0 :(得分:0)

遍历videoList1时,您不能添加(或删除)任何内容。
而是在迭代之前创建一个新列表,将项目添加到该临时列表,然后在迭代之后-将整个临时列表添加到您的videoList1

List<Thumbnail> toAdd = new ArrayList<>();
for (Thumbnail thumbnail : videoList1){

    for (Giphy giphy : giphyList) {


        if (thumbnail.getVideoID().equals(giphy.getVideoID())) {

            thumbnail.setThumbUp(giphy.getThumbUp());
            thumbnail.setThumbDown(giphy.getThumbDown());
            toAdd.add(thumbnail);
        }
    }

}
videoList1.addAll(toAdd);

答案 1 :(得分:0)

在遍历列表时无法修改列表。试试这个。

    PasswordReset::create([
'email'=>'test@gmail.com',
'token' => '1234']);