private boolean compressRow(int[] row) { int row_total_prod = 1; int row_total_sum = 0; Integer [] rowSort = new Integer[row.length]; int[] rowSortarr = new int[row.length]; boolean res = false; for (int i = row.length - 1; i > -1; i--) { row_total_sum = row_total_sum + row[i]; row_total_prod = row_total_prod * row[i]; rowSort[i] = Integer.valueOf(row[i]); } Arrays.sort(rowSort, Collections.reverseOrder()); for (int i = row.length - 1; i > -1; i--) { rowSortarr[i] = rowSort[i].intValue(); } if (row_total_sum > 0 && row_total_prod == 0) { while (!Arrays.equals(row, rowSortarr)) { for (int i = row.length - 1; i > 0; i--) { if (row[i] > 0 && row[i - 1] == 0) { row[i - 1] = row[i]; row[i] = 0; res = true; } else { continue; } } } } return res; }