是Java方法吗;Arrays.deepToString();打印二维阵列的最有效方法是什么?

是Java方法吗;Arrays.deepToString();打印二维阵列的最有效方法是什么?,java,c#,arrays,Java,C#,Arrays,我发现类似的问题如下: 但他们没有回答这样一个问题——效率更高吗 我正在用C#编写一个基本的小型控制台游戏,它需要反复清除和写入控制台以刷新游戏状态。在寻找一种比我当前的尝试更有效的方法时,我在Java中发现了以下内容: Arrays.deepToString(arrayName); 这正是我想要达到的 这比在Java中使用嵌套循环更有效吗 String[][] map = new String[10][10]; for (int i = 0; i < 10; i++) {

我发现类似的问题如下:

但他们没有回答这样一个问题——效率更高吗

我正在用C#编写一个基本的小型控制台游戏,它需要反复清除和写入控制台以刷新游戏状态。在寻找一种比我当前的尝试更有效的方法时,我在Java中发现了以下内容:

Arrays.deepToString(arrayName);
这正是我想要达到的

  • 这比在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;
        }
    }
    
    String[][]map=新字符串[10][10];
    对于(int i=0;i<10;i++)
    {
    对于(int j=0;j<10;j++)
    {
    map[i][j]=”=”;
    }
    }
    布尔值firstRun=true;
    对于(int i=0;i<10;i++)
    {
    对于(int j=0;j<10;j++)
    {
    如果(j==0&&firstRun==false)
    {
    系统输出打印(“\n”);
    }
    系统输出打印(地图[i][j]);
    firstRun=false;
    }
    }
    
  • 如果效率更高,是否有与之相当的C#库?我似乎在任何地方都找不到一个或甚至有人问起这个问题


  • 你从错误的角度看这个问题:

    • 您的代码几乎没有处理任何数据(2019年,10x10是无数据的)
    • 您的代码正在执行控制台输出
    请放心:像这样打印到标准输出比在内存中处理一个几乎什么都没有的数组要贵很多倍(参见一些示例数据)

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

    相反,把时间花在编写易于阅读、理解和维护的代码上。从那里开始,对
    Arrays.deepToString(arrayName)的单一调用更受欢迎

    请记住:在java世界中,运行时性能并非来自编写“聪明”的源代码。它来自JIT决定“这段代码被频繁使用,我应该把它翻译成机器代码”。如果JIT认为“不值得优化”,那么它就不值得优化。如果值得优化,那么让JIT更容易实现。通过编写简单易用的代码


    长话短说:实现这一功能是一个很好的练习,但现在您已经实现了这一功能,请扔掉它,使用适合您的库调用。

    您需要它的效率有多高,目前它的效率有多高?如果不进行测量,就无法优化性能。使用探查器。无论我需要它有多高效,这些方法中的一种在理论上肯定更高效,不是吗?我很欣赏这个快速的答案,双赢哈哈。虽然这不是我正在使用的代码,但我只是用它作为一个例子,这肯定回答了我的问题,并且帮助很大,谢谢。