Упрощенный процесс для условной упаковки бина в Java
У меня есть алгоритм, который делает упаковку бин на основе определенных условий. Я считаю, что алгоритм немного сложен для понимания читателями.
Ниже вы можете найти разработанный Java-код. Существует ли значительно упрощенный альтернативный поток для этого кода?
void binpack() {
boolean set=false, cmap=false;
while(set==false) {
set=true;
cmap=false;
pack[k.cnt]=new bins(k.lim, k.ptim);
for(int i=0;i<tot;i++) {
int s1,s2;
if(jm[i][1]==0) {
s1=jm[i][0];
set=false;
else if(pack[k.cnt].pushk<k.lim) {
for(int j=0;j<pack[k.cnt].pushk;j++) {
s2=pack[k.cnt].binjm[j][0];
for (Iterator<Integer> g= list[s1].iterator(); g.hasNext();) {
}
}
Заметки:
ptim -> настоящее время
Этим-> Время окончания
Нт -> предел
2 ответа
Решение
Пара вещей с моей головы:
- Имена переменных должны быть более выразительными. Не сокращайте, особенно, чтобы не сохранять один или два символа (например,
ptim
,chk()
) - Поставьте пробелы после открытия и перед закрытием скобок, после и перед операторами и так далее. Звучит глупо, но вы будете удивлены, насколько легче будет читать ваш код.
- Избегайте ненужных логических сравнений (например,
if ( bool == false )
должно бытьif ( !bool )
- Избегайте однострочников
if
с илиwhile
s, используйте правильное{}
блоки. - Не объявляйте заранее переменные, если это не нужно.
- Вместо структуры двойного разрыва, которую вы имеете в своем вложенном цикле,
break
на этикетку. - И самое главное: включите некоторые из этих циклов в методы.
Во-первых: не сокращайте переменные только для того, чтобы сохранить некоторую типизацию. Это приводит к запутыванию непонятных кодов, подобных этому.
Во-вторых, вы уже слышали о java.util.Map?