循环效率

  • 本文关键字:效率 循环 java
  • 更新时间 :
  • 英文 :


如何优化以下代码片段?我正在创建要填充在 2D 数组中的空间对象以充当棋盘,并使用它来创建更标准的命名系统。

String name = null;
    for(int r = 7; r > -1; r--)
        for(int c = 0; c < 8; c++)
        {
            if(c == 0)
                name = "A";
            else if(c == 1)
                name = "B";
            else if(c == 2)
                name = "C";
            else if(c == 3)
                name = "D";
            else if(c == 4)
                name = "E";
            else if(c == 5)
                name = "F";
            else if(c == 6)
                name = "G";
            else
                name = "H";
final static char[] letters = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H' };
      :
for (int c=0; c<8; c++) {
    name = letters[c];
      :

这有一个名字作为一个char - 它真的需要一个字符串吗? 如果是这样,请进行明显的更改。如果您关心效率,请将字母定义为 String[],而不是从 char-to String 的运行时转换。

您可以遍历字符并将其更改为如下所示的字符串:

for (int r=7; r >= 0; r--) {
    for (char c='A'; c <= 'H'; c++) {
        name = c + "";

您从未完成for循环,但这里有一种方法可以优化您到目前为止向我们展示的内容:

String name = null;
String letters = "ABCDEFGH";
for (int r=7; r >= 0; r--) {
    for (int c=0; c < 8; c++) {
        name = letters.charAt(c) + "";
        // the rest of your logic
    }
}

"A"的 ASCII 代码是 65,"H"的 ASCII 代码是 72。然后,你可以做这样的事情

for (int r = 7; r > -1; r--) {
    for(int c = 65; c < 73; c++) {
        name = Character.toString((char) c);
        //or
        name = "" + (char) c;
    }
}

最新更新