使用java中的海量数据集预填充ArrayList

时间:2018-05-24 20:46:37

标签: java optimization arraylist

我正在尝试制作一个玩家只能在他们周围的小半径中看到的游戏。我试图通过覆盖具有1X1黑色像素的500X500显示器来实现这一点,我可以将其设置为活动或非活动状态。问题是使用standered for循环来添加它们会花费大量的时间来启动程序并且它会降低整个程序的速度。任何解决方案?

pix对象采用两个参数(int x,int y)

public ArrayList<Pix> pixs= new ArrayList<>();

for(int i = 0; i<=500; i++)
{
    for(int ii = 0; ii<=500; ii++)
    {
        pixs.add(new Pix(ii,i));
    }
}

1 个答案:

答案 0 :(得分:6)

您正在构建您的Pix类的250000个实例。这需要一些时间。

考虑使用二维数组的布尔值。其中false表示像素为黑色。

您不需要自己初始化值,因为它们默认为false。

    boolean[][] pixs = new boolean[500][500];

您可以使用以下内容迭代结构:

    for (int x = 0; x < 500; x++) {
        for (int y = 0; y < 500; y++) {
            System.out.println(pixs[x][y]);
        }
    }

你可以用

设置一个特定的像素
    int x = 232;
    int y = 455;
    pixs[x][y] = true;