Упрощенный процесс для условной упаковки бина в Java - PullRequest
0 голосов
/ 21 декабря 2011

У меня есть алгоритм, который выполняет упаковку бина на основе определенных условий.Я считаю, что алгоритм немного сложен для понимания читателями.

Ниже вы можете найти разработанный 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 -> настоящее время

etim -> время окончания

Нт -> предел

Ответы [ 2 ]

1 голос
/ 21 декабря 2011

Во-первых: не сокращайте переменные только для того, чтобы сохранить некоторую типизацию.Это приводит к запутыванию непонятных кодов, подобных этому.

Во-вторых, вы уже слышали о java.util.Map?

?
1 голос
/ 21 декабря 2011

Несколько вещей, которые мне не нравятся:

  1. Имена переменных должны быть более выразительными.Не сокращайте, особенно, чтобы не сохранять один или два символа (например, ptim, chk())
  2. Поставляйте пробелы после открывания и перед закрытием скобок, после и перед операторами и так далее.Звучит глупо, но вы будете удивлены, насколько легче будет читать ваш код.
  3. Избегайте ненужных логических сравнений (например, if ( bool == false ) должно быть if ( !bool )
  4. Избегать однострочных if s или while s, используйте правильные {} блоки.
  5. Не объявляйте переменные заранее, если вам не нужно.
  6. Вместо имеющейся структуры двойного разбиенияв вашем вложенном цикле break до метки.
  7. И самое главное: добавьте некоторые из этих циклов в методы.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...