Вам нужно будет оценить, действительно ли это лучше, но вы можете использовать подход, в котором вы используете битовый массив для хранения информации о том, будут ли использоваться поля.Каждое поле будет иметь значение, соответствующее одному биту:
static final FIELD1 = 1;
static final FIELD2 = 2;
static final FIELD3 = 4;
static final FIELD4 = 8;
static final FIELD5 = 16;
etc
Каждое поле формы будет иметь значение своего битового значения, если оно выбрано, или 0, если оно не выбрано.При отправке формы, суммируйте поля и отправьте значение.Таким образом, если FIELD1 и FIELD3 были проверены, вы должны передать значение 5 (00101 в двоичном виде).
Затем вы применяете простую битовую маску для каждого поля, чтобы определить, какие из них были выбраны (есть ли лучший способполе за полем?):
boolean field1Selected = sum & FIELD1;
boolean field2Selected = sum & FIELD2;
etc
Недостатки: при 100 полях вы говорите о действительно большом числе!Возможно, вам придется использовать 2-битные массивы.Я также не уверен, что это действительно упрощает вашу проблему, но, возможно, это так.