更有效的方法然后在Android开发中切换(Java)

时间:2016-11-20 15:02:50

标签: java android performance switch-statement

我正在使用Android Studio(Java)开发游戏。在我的项目中,有一个方法用于生成对象的实例并将它们填充到ArrayList中。基本上它是做什么的,它只是制造了敌人的太空船"随机拍摄#34;播放器#34;换句话说,在每一帧之后,该方法生成一个随机数,如果该数字为1,则ArrayList由一个"激光爆炸填充"使敌人太空船射击的物体实例。

我的问题是:是否有更好,成本更低的方式来模拟此类事件?或者也许有一种方法可以使这种现有方法更有效,成本更低?

以下是方法:

public static void generateRandomNumber(ArrayList<EnemyShipLaserBlast> listOfLaserBlasts, int x, int y) 
{
    Random random = new Random();
    int number = random.nextInt(50);
    switch (number) {
        case 1:
            listOfLaserBlasts.add(new EnemyShipLaserBlast(x, y));
            break;
        default:
            //do nothing
    }
 }

1 个答案:

答案 0 :(得分:1)

正如其他人所提到的,由于你只有一个案例,你应该使用“if”语句而不是“switch” - 可能不会有性能提升,但代码会更容易阅读。< / p>

我认为对性能影响最大的变化是使Random变为静态(我会将其作为静态最终)。这样,您将为整个应用程序构造一次Random,而不是每次调用该方法。这节省了对象构建和垃圾收集的时间。