Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的ArrayList在使用contains时总是给出错误的数据?_Java_Android_Arraylist - Fatal编程技术网

Java 为什么我的ArrayList在使用contains时总是给出错误的数据?

Java 为什么我的ArrayList在使用contains时总是给出错误的数据?,java,android,arraylist,Java,Android,Arraylist,我有两个arraylist,我将它们相互匹配。在最初的几分钟里,我得到了很好的结果,但在那之后,我总是得到错误的结果 代码: //Prapering lists for compare ArrayList<String> list_old = new ArrayList<>(tinydb.getListString("list_old")); for

我有两个
arraylist
,我将它们相互匹配。在最初的几分钟里,我得到了很好的结果,但在那之后,我总是得到错误的结果

代码:

                    //Prapering lists for compare
                    ArrayList<String> list_old = new ArrayList<>(tinydb.getListString("list_old"));


                    for(String i: tinydb.getListString("list_old")) {
                        for(String j: tinydb.getListString("list_new")) {
                            if (i.contains(j)) {
                                list_old.remove(i);
                                break;
                            }
                        }
                    }
public ArrayList<String> getListString(String key) {
        return new ArrayList<String>(Arrays.asList(TextUtils.split(preferences.getString(key, ""), "‚‗‚")));
    }
//Prapering用于比较的列表
ArrayList list_old=新的ArrayList(tinydb.getListString(“list_old”);
对于(字符串i:tinydb.getListString(“列表旧”)){
对于(字符串j:tinydb.getListString(“列表新”)){
如果(i.包含(j)){
列出旧的。删除(i);
打破
}
}
}
这个代码有什么问题

在TinyDB中列出字符串:

                    //Prapering lists for compare
                    ArrayList<String> list_old = new ArrayList<>(tinydb.getListString("list_old"));


                    for(String i: tinydb.getListString("list_old")) {
                        for(String j: tinydb.getListString("list_new")) {
                            if (i.contains(j)) {
                                list_old.remove(i);
                                break;
                            }
                        }
                    }
public ArrayList<String> getListString(String key) {
        return new ArrayList<String>(Arrays.asList(TextUtils.split(preferences.getString(key, ""), "‚‗‚")));
    }
publicArrayList getListString(字符串键){
返回新的ArrayList(Arrays.asList(TextUtils.split(preferences.getString(key,“”,“”,“”,“”?));
}

再次加载列表。您不应该再次加载它,而是加载现有的

for(String i : list_old) {
    for (String j: tinydb.getListString("list_new")) {
        if (i.contains(j)) {
            list_old.remove(i);
            break;
        }
    }
}

你能发布什么是列表吗?你得到的坏数据的例子是什么?你能提供getListString的代码吗?@TungstenX我编辑过请看它。当我这样做时,APP正在停止:E/AndroidRuntime:FATAL EXCEPTION:main Process:com.example.project,PID:5980 java.util.ConcurrentModificationException我们离解决您的问题又近了一步:)您必须告诉我们什么是
tinydb
,以及
getListString()
方法的签名是什么。我编辑了@Danon您是否从多个线程运行此代码?或者使用
parralelStream()
?这是put字符串:tinydb.putListString(“list_old”,MyArrayList);