小编use*_*996的帖子

java.util.ConcurrentModificationException 从 arraylist 中删除元素时,即使使用迭代器

当满足特定条件时,我试图从两个 arrayList 中删除内容。但是当条件满足时,我得到并发修改错误。在互联网上搜索后,我看到了使用迭代器概念解决此问题的解决方案,但这也不起作用。

这是我尝试过的两个代码变体:[我的代码在 Kotlin 中]

第一种变化:删除后立即出错

        var index = 0
        for (snap: DataSnapshot in snaps){
            if (snap.key == snapshot.key){
                snaps.removeAt(index)
                emailOfSenders.removeAt(index)
            }

            index++
        }
Run Code Online (Sandbox Code Playgroud)

第二种变化:如果数组列表中的项目小于 3,则有效,但如果项目为 3 或大于 3,我会收到相同的错误

        var index = 0

        val iter: Iterator<DataSnapshot> = snaps.iterator()
        while (iter.hasNext()) {
            val snap: DataSnapshot = iter.next()
            if (snap.key == snapshot.key){
                snaps.removeAt(index)
                emailOfSenders.removeAt(index)
            }

            index++
        }
Run Code Online (Sandbox Code Playgroud)

错误日志:

2020-11-18 13:52:32.829 18935-18935/com.rofy.snapyandroid E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.rofy.snapyandroid, PID: 18935
    java.util.ConcurrentModificationException
        at java.util.ArrayList$Itr.next(ArrayList.java:860)
        at com.rofy.snapyandroid.SnapsActivity$onCreate$1.onChildRemoved(SnapsActivity.kt:54)
        at com.google.firebase.database.core.ChildEventRegistration.fireEvent(ChildEventRegistration.java:88)
        at com.google.firebase.database.core.view.DataEvent.fire(DataEvent.java:63)
        at com.google.firebase.database.core.view.EventRaiser$1.run(EventRaiser.java:55)
        at …
Run Code Online (Sandbox Code Playgroud)

java android kotlin firebase android-studio

1
推荐指数
1
解决办法
362
查看次数

无法将表单数据推送到JSON文件中

我有json数据文件,groups.json

 { 
       "groups" : [ 
       { "pname" : "group1", 
          "remarks" : "best" }, 
        { "pname" : "group2", 
          "remarks" : "not the best" } ,   
       { "pname" : "group3", 
         "remarks" : "affordable" } ] 
    }
Run Code Online (Sandbox Code Playgroud)

还有pushtest.html

    <body>
        <script type="text/javascript"> 
        var groups;      
        var len;
    $.getJSON('groups.json',function(data) {        
console.log(data.groups);   
        groups = data.groups;       
        len = groups.length;    
        });                 
        function save()     
        {       
        var user={};            
        user.pname=document.getElementById("name").value; 
        user.remarks=document.getElementById("remark").value;   
        console.log(user);          
        var l = JSON.stringify(groups);             
        var obj = JSON.parse(l);    
                    obj['groups'].push(user);   
        var v=JSON.stringify(obj); 
            console.log(v);         
        }       
         </script> 
        <form> 
        <input name="name" type="text" id="name" placeholder="name" …
Run Code Online (Sandbox Code Playgroud)

html javascript forms json

0
推荐指数
1
解决办法
42
查看次数

标签 统计

android ×1

android-studio ×1

firebase ×1

forms ×1

html ×1

java ×1

javascript ×1

json ×1

kotlin ×1