簡體   English   中英

Android Java將兩個類似的for循環合並為一個循環

[英]Android java make two similar for loops into one loop

我試圖將這兩個for循環合並在一起,以便我可以將其用於一個fillview。

我已經嘗試了幾天,但是不確定如何執行此操作,因此將不勝感激!

任何幫助表示贊賞

    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);
    }
}

嘗試這個:

int maxDataSetSize = Math.max(data1.size(), Math.max(data2.size(), data3.size())) ;
int maxDataSetSize2 = Math.max(data4.size(), Math.max(data5.size(), data6.size()));

for (int i = 0, j = 0; i < maxDataSetSize || j < maxDataSetSize2; i++, j++) {

    View statsRowview = getLayoutInflater().inflate(R.layout.stats_row, null);

    if(i < maxDataSetSize){
        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;
        fillView(statsRowview, dataset1Value, dataset2Value, dataset3Value);
    }


    if(j < maxDataSetSize2){
        String dataset4Value = data4.size() > j ? data4.get(j) : DEFAULT_COLOR;
        String dataset5Value = data5.size() > j ? data5.get(j) : DEFAULT_COLOR;
        String dataset6Value = data6.size() > j ? data6.get(j) : DEFAULT_COLOR;
        fillView2(statsRowview, dataset4Value, dataset5Value, dataset6Value);
    }

    tableStats.addView(statsRowview);
}

這應該工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM