优化public static int countNumber(CellArray cells,int x,int y) { int count = 0; for (int i = 0; i < 3; ++i) { for (int j = 0; j < 3; ++j) { if (CellState.LIVE.getValue() == cells.getCell(x + temp[i], y + temp[j])) { ++count; } } } if (CellState.LIVE.getValue() == cells.getCell(x, y)) { --count; } return count; }
时间: 2024-02-14 14:20:36 浏览: 28
这段代码中可以进行一些优化,例如:
1. 将常量3提取为一个变量,避免多次硬编码。
2. 可以将临时数组temp[]改为常量数组,避免每次调用该函数都创建一个临时数组。
3. 可以使用位运算来代替乘法和除法。
4. 可以使用位运算来代替加法和减法。
5. 可以使用条件运算符来代替if语句,使代码更简洁。
6. 可以使用位移运算来代替除法。
7. 可以使用位运算来代替取模运算。
8. 可以使用位运算来代替逻辑运算符,使代码更高效。
下面是优化后的代码:
public static final int SIZE = 3;
public static final int[] TEMP = {-1, 0, 1};
public static int countNumber(CellArray cells, int x, int y) {
int count = 0;
int cellValue = cells.getCell(x, y);
for (int i = 0; i < SIZE; ++i) {
int tempI = TEMP[i];
int tempX = (x + tempI) << 2;
for (int j = 0; j < SIZE; ++j) {
int tempJ = TEMP[j];
int tempY = (y + tempJ) << 2;
count += (cells.getCell(tempX + tempY) >> 31) & 1;
}
}
count -= (cellValue >> 31) & 1;
return count;
}
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)