比较嵌套循环中的信息并在匹配时进行标记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比较嵌套循环中的信息并在匹配时进行标记相关的知识,希望对你有一定的参考价值。

数据是一个携带的数据:观察1,观察2,观察3,观察4,观察5

stringarray2一个数组,可能包含上述任何一个,例如:observation1,observation4

我正在尝试将项目添加到countryList中,如果它们出现在两个数组中,则将它们设置为true,否则设置为false。

我需要帮助设置嵌套循环。

我目前有以下设置非常接近,但这只是将数组2中的最后一项添加为true(例如,观察4)你能看到我出错的地方吗?

while (data.moveToNext()){

        if (data.moveToFirst()){
            do{
                observation = data.getString(1);

                if (editing.equals("yes")) {

                    stringarray2
                    Boolean test = false;
                    for (String name:stringarray2)
                    {
                        if (observation.equals(name)){
                            test = true;
                        }else{
                            test = false;
                        }
                    }

                    Country country = new Country(null,observation,test);
                    countryList.add(country);

                }else{
                    Country country = new Country(null,observation,false);
                    countryList.add(country);
                }
            }while(data.moveToNext());
        }
    }
答案

试试这个

if (data.moveToFirst())
{
      do
      {
           observation = data.getString(1);

           if (editing.equals("yes")) 
           {
                stringarray2 //random word here?
                Boolean test = false;
                for (String name:stringarray2)
                {
                    if (observation.equals(name))
                    {
                        test = true; 
                        break;
                    }
                }
                Country country = new Country(null,observation,test);
                countryList.add(country);
            }
            else
            {
               Country country = new Country(null,observation,false);
               countryList.add(country);
            }
      }
      while (data.moveToNext())
}
另一答案

我认为你的问题在于你的时间和条件。

有了你的第一个循环

while (data.moveToNext())

moveToNext()已经检查是否有下一个并移动到它,你不应该再次移动到第一个,只是开始使用该值

你需要类似的东西

try {
    while (data.moveToNext()) {
        observation = data.getString(1);

                if (editing.equals("yes")) {

                    stringarray2
                    Boolean test = false;
                    for (String name:stringarray2)
                    {
                        if (observation.equals(name)){
                            test = true;
                        }else{
                            test = false;
                        }
                    }

                    Country country = new Country(null,observation,test);
                    countryList.add(country);

                }else{
                    Country country = new Country(null,observation,false);
                    countryList.add(country);
                }
    }
} finally {
    data.close();
}

假设你的内在逻辑正常。

P.S我添加了一个try finally,因为你需要在完成查询结果后关闭光标。

以上是关于比较嵌套循环中的信息并在匹配时进行标记的主要内容,如果未能解决你的问题,请参考以下文章

Android 嵌套片段方法

Recyclerview 滚动在嵌套滚动视图中的片段中不起作用

Python:在元组列表和嵌套列表中比较并查找匹配项

如何在嵌套的 for 循环中使用 continue 语句之类的东西?

在python的嵌套循环中将值分配给df

javascript for循环,如果增量值不匹配则嵌套?