比较嵌套循环中的信息并在匹配时进行标记
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
,因为你需要在完成查询结果后关闭光标。
以上是关于比较嵌套循环中的信息并在匹配时进行标记的主要内容,如果未能解决你的问题,请参考以下文章
Recyclerview 滚动在嵌套滚动视图中的片段中不起作用