Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
Android 循环逻辑迭代器_Android_Loops_Iterator - Fatal编程技术网

Android 循环逻辑迭代器

Android 循环逻辑迭代器,android,loops,iterator,Android,Loops,Iterator,我有一个无法思考的问题。 我有一个电话号码列表,表示为:用户拥有应用程序 我的手机上还有一个所有联系人的树状图 我想将所有拥有该应用程序的用户与我的联系人树状图进行比较,这样,如果用户拥有该应用程序,我可以将他们添加为好友,但如果他们没有,我可以发送一条短信邀请。以下是我所拥有的,但它不起作用: Iterator<Entry<String, String>> it = contacts.entrySet().iterator(); while (i

我有一个无法思考的问题。 我有一个电话号码列表,表示为:用户拥有应用程序 我的手机上还有一个所有联系人的树状图 我想将所有拥有该应用程序的用户与我的联系人树状图进行比较,这样,如果用户拥有该应用程序,我可以将他们添加为好友,但如果他们没有,我可以发送一条短信邀请。以下是我所拥有的,但它不起作用:

Iterator<Entry<String, String>> it = contacts.entrySet().iterator();
            while (it.hasNext()) {
                Map.Entry<String, String> pairs = (Map.Entry<String, String>)it.next();
                for(int i = 0; i < users.size(); i++) {
                    String userNumber = Helper.formatNumber(users.get(i).getString("phone"));
                    if(pairs.getValue().equals(userNumber)) { //they have the app
                        contact_data.add(new Contact(pairs.getKey().toString(), pairs.getValue().toString(), true));
                    } else { //they don't have the app
                        contact_data.add(new Contact(pairs.getKey().toString(), pairs.getValue().toString(), false));
                    }
                }
                it.remove(); // avoids a ConcurrentModificationException
            }

每次检查用户是否与当前查看的联系人匹配时,您都会添加该用户。似乎您只想为每个联系人添加一个用户


一种方法是在for循环之前添加一个布尔值,并将其初始化为false。找到拥有应用程序的用户后,将此布尔值设置为true。将else分支标记为//在for循环之后没有应用程序,并且仅在以下情况下运行它!建立这将确保每个联系人只添加一个联系人数据。

这不起作用。您收到了什么错误消息?目前的结果是什么?