Java 7个复选框组合的快速编码方式?

Java 7个复选框组合的快速编码方式?,java,android,if-statement,checkbox,Java,Android,If Statement,Checkbox,我有7个复选框,将根据用户在复选框上选中的条件,在单击按钮时对列表进行排序。现在我想这意味着我将有128个不同的复选框组合,这意味着128个if语句将花费我一整夜的时间 有没有更好/更快的方法?也许是复选框的替代品?通过对与复选框关联的值进行平均,将根据选择的框组合对列表进行排序 示例如下: if(ONE.isChecked()) { //sort by 1 } if(TWO.isChecked()) { //sort by 2 } if(THREE.isChecked())

我有7个复选框,将根据用户在复选框上选中的条件,在单击按钮时对列表进行排序。现在我想这意味着我将有128个不同的复选框组合,这意味着128个if语句将花费我一整夜的时间

有没有更好/更快的方法?也许是复选框的替代品?通过对与复选框关联的值进行平均,将根据选择的框组合对列表进行排序

示例如下:

if(ONE.isChecked())
 {
 //sort by 1
 }
 if(TWO.isChecked())
 {
 //sort by 2
 }
 if(THREE.isChecked())
 {
 //sort by 3
 }
 if(ONE.isChecked() && TWO.isChecked())
 {
 //sort by (1 + 2)/2
 }

首先使用7个复选框的数组,然后不需要重复代码副本


那么你就可以用天才了。非常感谢。
Checkbox[] checkboxes = ... // For instance { ONE, TWO, ... } 
int index = 0;

for (int i = 0; i < checkboxes.length; ++i) {
    index <<= 1;
    if (checkboxes[i].isChecked()) {
       index |= 1;
    }
}
for (int i = 0; i < checkboxes.length; ++i) {
    if (checkboxes[i].isChecked()) {
       index |= 1 << i;
    }
}