java for循环创建数组_Java快捷方式:生成一个数组,将for循环更改...

博客讨论了在编程竞赛中使用自定义`range`函数优化for循环的方法,以提高代码的整洁性和可能的效率。尽管这可能导致代码更易读,作者指出这在性能上并无显著影响,因为`range`函数的时间复杂度为O(n),与常规for循环相同。考虑到比赛环境下时间的紧迫性,使用这样的技巧可能会减少错误。文章还提到了内存管理和垃圾收集的影响,但主要关注点在于编码速度和可读性,而非长期的代码维护。
摘要由CSDN通过智能技术生成

我考虑过在比赛编程中使用这个快捷方式.我定义了一个函数:

private static int[] range(int n) {

int[] ret = new int[n];

for (int i = 0; i < n; i++) {

ret[i] = i;

}

return ret;

}

所以我可以稍微更快地编写我的for循环,并且看起来稍微整洁(扫描代码时):

for (int i: range(n)) { doit(i); }

代替:

for (int i = 0; i < n; i++) { doit(i); }

这种方法是否有任何重大的性能问题,它们是什么?

代码有一个计算解决方案的时间限制,但使用正确的算法通常可以在一小部分时间内完成此操作.范围函数在O(n)中运行,因为无论如何我们将运行O(n)循环,时间复杂度没有增加.垃圾收集怎么样?还有别的什么我想不到的?

我将确定我以后是否真的喜欢使用此方法,并且如果在比赛开始时输入功能是值得的.请不要回答关于风格的问题. (竞争编码产生了一些你见过的最糟糕的代码,但它是关于按时完成它并且再也不会再看它的了.)

为了澄清,实际编码时间在本次比赛中至关重要,我们不能带来预先编码的代码.这通常意味着没有代码片段.在匆忙和凌乱的编码环境中,foreach将使循环更快,更容易出错.它是C中宏的替代品.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值