过滤和计算Android Studio中的数组值



我正在尝试制作测验/测试应用程序。我有4个值作为字符串(从以前的活动,用户通过无线电按钮选择(传递到这样的"结果"活动中:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_auswertung);
    Intent intent = getIntent();
    final String strSommerWinter = intent.getStringExtra("strSommerWinter");
    final String strUrlaubsart = intent.getStringExtra("strUrlaubsart");
    final String strRegion = intent.getStringExtra("strRegion");
    final String strAnreise = intent.getStringExtra("strAnreise");
}

它们都是所有数字(我猜可能/应该将它们更改为Int(,例如1、1、6、10。然后我有这个数组:

int [][] destiBewertung = {{3,4,2,0,1,3,5,0,0,2,3,3,5,4},
                            {1,3,5,4,4,4,3,3,2,5,0,0,5,4},
                            {3,3,1,4,5,4,2,5,4,3,0,0,5,4},
                            {1,3,4,4,4,3,4,3,0,5,5,3,4,4},
                            {1,3,3,4,4,5,2,4,4,5,0,0,5,4},
                            {3,4,3,1,1,3,5,0,1,0,5,5,5,0},
                            {3,5,5,2,2,3,5,0,0,1,5,5,5,3},
                            {3,5,5,0,1,3,5,0,0,0,5,5,5,0},
                            {3,2,1,3,4,4,1,5,0,2,5,4,0,1},
                            {3,1,5,3,1,3,2,2,0,5,3,0,5,0},
                            {3,4,3,3,3,2,5,0,2,5,5,5,5,3},
                            {3,5,3,3,5,3,2,4,5,5,0,0,5,4},
                            {3,4,3,4,4,3,4,3,3,5,0,0,5,3},
                            {3,3,2,4,4,3,3,5,1,5,5,5,5,3},
                            {3,5,3,0,2,3,5,0,0,0,5,5,5,0},
                            {3,5,3,2,2,3,5,1,3,4,3,0,5,3},
                            {3,4,5,1,2,3,5,0,0,0,5,5,5,3},
                            {3,4,2,2,3,3,5,2,3,1,3,3,5,1},
                            {3,4,3,4,3,2,5,2,2,5,4,3,5,3},
                            {3,4,5,1,1,3,5,0,0,0,5,5,5,0},
                            {3,3,2,4,5,4,2,4,4,5,5,0,2,0},
                            {1,3,0,4,5,5,0,5,4,3,3,4,0,5},
                            {3,2,3,4,5,4,2,4,2,5,3,3,4,3},
                            {3,4,3,2,1,3,5,0,2,4,5,3,5,3},
                            {3,4,3,3,2,3,5,0,0,5,5,5,5,5},
                            {3,5,3,1,1,3,5,0,0,0,5,5,5,0},
                            {3,5,3,1,1,3,5,0,0,0,5,5,5,4},
                            {3,4,0,5,5,5,1,5,4,0,3,0,4,0},
                            {3,4,4,1,2,3,5,2,1,3,0,0,5,4},
                            {3,5,3,2,1,3,5,0,1,0,5,5,5,0},
                            {3,4,3,1,1,3,5,0,0,0,5,5,5,0},
                            {3,5,4,0,0,2,5,1,0,1,1,4,4,4},
                            {1,5,3,1,1,3,5,0,2,4,3,3,5,3},
                            {3,4,4,1,0,3,5,0,0,0,5,5,5,0},
                            {1,2,1,4,5,5,1,5,3,5,5,5,5,4},
                            {3,3,3,2,1,3,5,1,0,0,5,5,5,1},
                            {2,1,1,3,5,5,1,5,5,0,5,5,5,0},
                            {3,1,1,4,5,4,0,5,5,0,5,5,3,0},
                            {1,1,0,5,5,4,0,5,0,5,3,3,0,5},
                            {1,3,3,4,5,5,3,5,3,5,2,0,4,4}
};

第一列(位置0?(是1、2或3。如果第一个字符串(strsommerwinter(是1,则只有第一个值为1的行应进一步考虑。最后3个字符串(strurlaubsart,strregion,stranreise(是阵列的列,应求和。这张照片应该使我想做什么更清楚:屏幕截图

我想我需要ArrayList和一个新数组来进行结果。但是我不知道如何开始。非常感谢帮助!

您可以使用以下功能:

private List<Integer> getSelectedRowSums(
        int sommerWinter,
        int urlaubsart,
        int region,
        int anreise,
        int[][] destiBewertung
) {
    List<Integer> selectedRowSumList = new ArrayList<>();
    for (int[] columns : destiBewertung) {
        if (columns[0] == sommerWinter) {
            int sum = columns[urlaubsart] + columns[region] + columns[anreise];
            selectedRowSumList.add(sum);
        }
    }
    return selectedRowSumList;
}

最新更新