gpt4 book ai didi

java - Java 方法 "Arrays.deepToString()"是打印二维数组最有效的方法吗?

转载 作者:太空宇宙 更新时间:2023-11-03 22:36:22 26 4
gpt4 key购买 nike

我发现了类似的问题:

Java - Best way to print 2D array?

但他们没有回答以下问题 - 它是否更有效率?

我正在用 C# 编写一个基本的小型控制台游戏,需要反复清除和写入控制台以刷新游戏状态。在寻找一种比我目前的尝试更有效的方法时,使用嵌套的 for 循环遍历数组并以这种方式打印它,我在 Java 中找到了这个:

Arrays.deepToString(arrayName);

这就是我想要实现的目标。

  1. 这比在 Java 中使用嵌套循环更有效吗?:

    String[][] map = new String[10][10];

    for (int i = 0; i < 10; i++)
    {
    for (int j = 0; j < 10; j++)
    {
    map[i][j] = "=";
    }
    }

    boolean firstRun = true;

    for (int i = 0; i < 10; i++)
    {
    for (int j = 0; j < 10; j++)
    {
    if (j == 0 && firstRun == false)
    {
    System.out.print("\n");
    }

    System.out.print(map[i][j]);
    firstRun = false;
    }
    }
  2. 如果效率更高,是否有等效的 C# 库?我似乎在任何地方都找不到,甚至找不到人询问。

最佳答案

你看错了角度:

  • 您的代码几乎没有处理任何数据(10x10 在 2019 年没有)
  • 您的代码正在执行控制台输出

请放心:像这样打印到 stdout 比在内存中处理一个几乎没有数组的开销要很多倍(一些示例数据请参见 here)。

因此,真正的答案是:您可以安全地忽略此处的性能方面。

而是将时间花在编写易于阅读、理解和维护的代码上。从那里开始,单个调用 Arrays.deepToString(arrayName); 比编写自定义循环做同样的事情更受欢迎。

请记住:在 Java 世界中,运行时性能并不是来自编写“聪明”的源代码。它来自 JIT 决定“此代码经常使用,我应该将其转换为机器代码”。如果 JIT 认为“不值得优化”,那么它就不值得优化。如果值得优化,对 JIT 来说很容易。通过编写简单易行的代码。

长话短说:实现该功能是一个很好的练习,但既然您已经实现了该功能,那就扔掉它并使用适合您的库调用。

关于java - Java 方法 "Arrays.deepToString()"是打印二维数组最有效的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54928675/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com