【发布时间】:2020-04-04 09:28:30
【问题描述】:
我被一些对许多人来说可能微不足道的事情所困扰,但这对我来说已经成为一个问题。 基本上我试图通过两个字符串数组循环,其中一个具有静态大小,另一个具有可变大小,也可能为 0。
所以我的目标是在遍历第一个数组的同时遍历这两个数组,并使用第一个数组的值获取第二个数组的值,然后完全循环第二个数组。 但是,如果第二个数组为空,我想增加第一个数组的索引并查询第二个数组并继续直到第一个数组并且它的内部数组完全迭代。
听起来很简单,但我很难写出有效的东西。
我的代码:
var array1 : ArrayList<String> = ArrayList() // static value say 10
var array2 : ArrayList<String> = ArrayList() // may vary
var array1index = 0
var array2index = 0
array1 = getArray1Value()
button.setOnClickListener {
if(array1index<array1.size){
array2 = getByArray1Value(array1[array1index])
if(array2.isEmpty()){
//increase array1 index
if(array1index<array1.size){
array1index+=1
array2 = getByArray1Value(array1[array1index])
// ....... ?
}else{
over()
}
}else{
if(array2index<array2.size){
array2index+=1
}else{
over()
}
}
}else{
over()
}
我认为它变得比预期的要复杂......请帮助。
【问题讨论】:
-
这里肯定
array1index<=array1.size是一个问题。如果array1index == array1size并且您创建array1index+=1然后array2 = getByArray1Value(array1[array1index])将给您IndexOutOfBound exception其中大小为 10,索引为 10 -
好的..我知道我还需要改变什么?你能帮我一个完整的答案吗
标签: android performance loops for-loop arraylist