【问题标题】:Iteration and arrays [Java] Optimizing迭代和数组 [Java] 优化
【发布时间】:2014-12-03 20:10:20
【问题描述】:

我必须做一个练习,说要做一个打印二维矩阵 T(4x4) 和 T[n,m] = n+m 的程序。

我做到了,但现在,我想尽可能地优化它。

这是我的代码:

int T[][] = new int[4][4];
    for (int i = 0; i <T.length; i++) {
        for (int j = 0; j < T[i].length; j++) {
            T[i][j]= i+j;
            System.out.print(T[i][j]+" ");
        }
        System.out.print("\n");
    }

提前谢谢你。

【问题讨论】:

  • 你不能让你的代码运行得比这更快,也许是为了看起来更漂亮,是的。 ;)
  • 有一种方法可以更快地运行它。对所有输出使用 StringBuilder,然后使用 System.out.println()
  • 我看到的最昂贵的操作(I/O 除外)是使用T[i][j]+" " 构建一个新字符串,而您可以使用System.out.print(int i)
  • 好吧,使用StringBuilder,我在做的是节省内存吗?所以也做得更快?

标签: java arrays matrix


【解决方案1】:

我认为快速枚举比普通的 for 循环更快,并且在不同的博客上看到了几个用不同语言证明它的基准测试,但这正是我在网络上的评价...:-)

所以

for(对象 o:arrayOfSomething){ }

会更快...比你的。

【讨论】:

  • 您的声明不受支持。这也是完全错误的。而“快速枚举”是 Objective-C,而不是 Java。
  • 是的,Fast Enumeration 是 obj C,我是 obj C 开发人员,所以我只是将它命名为...我的意思是 For In,或者 For 每个循环应该比普通的 for 循环快...这就是我在任何编程语言的基准测试中看到的
  • 我在我的答案中发布的代码段也是 Java 代码,而不是 obj。 C
猜你喜欢
  • 1970-01-01
  • 2018-01-30
  • 2018-04-08
  • 2020-04-26
  • 1970-01-01
  • 1970-01-01
  • 2020-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多