【发布时间】:2015-01-01 13:15:23
【问题描述】:
我正在创建一个程序来模拟多代的简单遗传杂交,并且有一种方法可以接收两个creature 类,然后通过它们的类中的方法获取它们的两个配子。这四个配子存储在array、gamete[] 中。然后将这些配子用作arguments 以创建四个新的creature 类。在这里,有两种可能的方法(offSpring[] 是 array 的 creatures 类:
offSpring[0] = new MonoCreature(gamete[0], gamete[2]);
offSpring[1] = new MonoCreature(gamete[0], gamete[3]);
offSpring[2] = new MonoCreature(gamete[1], gamete[2]);
offSpring[3] = new MonoCreature(gamete[1], gamete[3]);
或
for(int q = 0; q < 4; q++) {
if((q == 0)||(q == 1)) {
offSpring[q] = new MonoCreature(gamete[0], gamete[q + 2]);
} else if((q == 2)||(q == 3)) {
offSpring[q] = new MonoCreature(gamete[1], gamete[q]);
}
}
这个方法必须重复调用数百次,甚至数千次才能运行一次。因此,性能成为一个重要问题。因此我倾向于追求第一部分,但我的老师说第二部分是一种更干净的方式。他明白第二个会有性能损失,但还是坚持了下来。在您看来,哪一个更好?
【问题讨论】:
-
对我来说,第一个更容易阅读和理解,而第二个远非“干净”。
标签: java performance for-loop