我正试图从2D列表中获取我的函数的值。
我的2D列表值定义为
List<List<String>> combined2d = new ArrayList<List<String>>();
将值添加到我的列表后,结构如下所示,
[[62744768, 62536400, 63689012, 63676486], [67888160, 67852422, 67299346, 68149470], [2017-09-06, 2017-09-05, 2017-09-17, 2017-09-15]]
我有一个带3个参数的函数,即
FuncA(string param1,string param2,string param3)
{
//some operations
}
现在我想通过循环2D列表值来传递FuncA的参数。
For Loop 1
我必须从列表中获取00,10,20索引值,例如
62477,6780,2017-09-06
这样我就会将参数传递给我的FuncA,如
FuncA(62477,6780,2017-09-06)
For Loop 2
就像循环2一样,
FuncA(600,6785,2017-08-05)
For Loop 3
FuncA(12,646,2017-07-17)
最多N次循环......
对于一个简单的ArrayList,我可以像这样循环遍历
for(String value:Singlearraylist) {
FuncB(value);
}
由于我是java的新手,我无法在这里找到解决问题的方法。
感谢您的回复
JAY
答案 0 :(得分:2)
unsigned int
我认为这对你很好。
答案 1 :(得分:2)
如果所有列表的大小不均匀,则循环大小应该是2-d列表中给出的所有给定列表的最小大小。因此代码可以写成forllows:
List<List<String>> combined2d = new ArrayList<List<String>>();
int minTemp = Math.min(combined2d.get(0).size(),combined2d.get(1).size());
int min = Math.min(minTemp,combined2d.get(2).size());
for(int i=0; i<min ; i+= 10){
FuncA(combined2d.get(0).get(i), combined2d.get(1).get(i), combined2d.get(2).get(i));
}
答案 2 :(得分:1)
正如@MadProgrammer建议的那样,创建一个包含数据成员param1
param2
param3
的类,其中包含getter和setter以及此类类型的列表,您可以使用它来迭代传递值FuncA(...,...,...)
class Data{
String param1, param2, param3;
// constructors, getters and setters
}
List<Data> listData = new ArrayList<>();
for(Data temp : listData)FuncA(temp.getParam1(),temp.getParam2(),temp.getParam3());
此处创建列表的方式也是@MadProgrammer在评论中建议的关键。 这样,您的代码就更容易阅读和调试。