我试图合并这两个循环在一起,以便我可以使用它的一个fillview。Android的Java使两个相似的循环成一个循环
我一直试图尝试几天,但我不确定如何做到这一点,所以将不胜感激一些帮助!
任何帮助表示赞赏
int maxDataSetSize = Math.max(data1.size(), Math.max(data2.size(), data3.size())) ;
for (int i = 0; i < maxDataSetSize; i++) {
String dataset1Value = data1.size() > i ? data1.get(i) : null;
String dataset2Value = data2.size() > i ? data2.get(i) : null;
String dataset3Value = data3.size() > i ? data3.get(i) : null;
View statsRowview = getLayoutInflater().inflate(R.layout.stats_row, null);
fillView(statsRowview, dataset1Value, dataset2Value, dataset3Value);
tableStats.addView(statsRowview);
}
int maxDataSetSize2 = Math.max(data4.size(), Math.max(data5.size(), data6.size()));
for (int i = 0; i < maxDataSetSize2; i++) {
String dataset4Value = data4.size() > i ? data4.get(i) : DEFAULT_COLOR;
String dataset5Value = data5.size() > i ? data5.get(i) : DEFAULT_COLOR;
String dataset6Value = data6.size() > i ? data6.get(i) : DEFAULT_COLOR;
View statsRowview = getLayoutInflater().inflate(R.layout.stats_row, null);
fillView2(statsRowview, dataset4Value, dataset5Value, dataset6Value);
tableStats.addView(statsRowview);
}
}
您的循环读取不同的数据,调用不同的填充方法,并将遍历其代码的次数不同。为什么你要尝试合并它们? – azurefrog 2015-02-17 22:36:54
至于发生了什么是这个http://puu.sh/fMfrt/03a298d2ee.png,但我想如果我合并它,它会像这样:http://puu.sh/fMfxx/bb5389687f.png – user3411002 2015-02-17 22:38:30
我可以理解统一控制代码的感觉很自然。但是大多数情况下,java中没有好的方法可以做到这一点。它没有需要的宏或类似的构造(所以你只能使用像visitor,iterator或streams())这样的模式。在具体的例子中,我认为在循环结构中有合理的少量控制代码。 – eckes 2015-02-18 01:12:40