java - 添加 Array[][] 到 ArrayList 替换和添加元素,而不是仅仅添加
问题描述
我正在为我的应用程序使用数组 [][] 的数组列表。问题是当我将第二个元素添加到 arraylist 时会替换第一个(它也添加到 arraylist,然后当添加下一个元素时,它会替换所有元素并添加,这会重复发生。
我不确定要添加什么代码,所以我会添加我认为有帮助的任何内容。
初始化数组列表:
ArrayList<Bitmap[][]> levelTileList = new ArrayList <Bitmap[][]>();
ArrayList<Rect[][]> levelTileListRec= new ArrayList <Rect[][]>();
ArrayList<Bitmap[][]> levelFireList = new ArrayList <Bitmap[][]>();
ArrayList<Rect[][]> levelFireListRec = new ArrayList <Rect[][]>();
添加第一个元素:
lvldesign.addLevel();
levelTileList.add(lvldesign.getAllLevelTiles());
levelTileListRec.add(lvldesign.getTempTileRect());
//fire rect and bitmaps
levelFireList.add(lvldesign.getAllLevelFire());
levelFireListRec.add(lvldesign.getTempFireRect());
请注意,它调用另一个类来获取元素。它调用的类
public Bitmap[][] getAllLevelTiles(){
return tempTile;
}
public Rect[][] getTempTileRect(){
return tempTileRect;
}
public Bitmap[][] getAllLevelFire(){ return tempFire; }
public Rect[][] getTempFireRect(){
return tempFireRect;
}
添加后续元素:
lvldesign.addLevel();
levelTileList.add(lvldesign.getAllLevelTiles());
levelTileListRec.add(lvldesign.getTempTileRect());
//fire rect and bitmaps
levelFireList.add(lvldesign.getAllLevelFire());
levelFireListRec.add(lvldesign.getTempFireRect());
请注意,它调用的所有元素都是 Bitmap[][] 或 Rect[][]。
正如我已经说过的,最新添加的元素替换了所有早期元素并添加了一个元素。如果您想查看任何其他特定代码,请告诉我。
解决方案
好吧,似乎每次添加到数组列表时都必须将其视为一个新变量。所以我将以下代码添加到我的添加级别(此代码在调用之前运行。)并且它有效。因此,如果您有同样的问题,只需确保每个元素都被视为一个新元素。
tempTileRect = new Rect[mapHeight][mapWidth];
tempFireRect = new Rect[mapHeight][mapWidth];
tempTile = new Bitmap[mapHeight][mapWidth];
tempFire = new Bitmap[mapHeight][mapWidth];
推荐阅读
- sql - 创建具有不同输入的 PL/SQL 过程和匿名块
- r - 将不同文件夹中的多个 csv 文件(名称相似)合并为一个 csv 并逐行绑定
- assembly - x86 程序集:错误 A2008:语法错误:否定
- python - Flask / Gcloud 错误“内容必须通过 HTTPS 提供”
- c++ - vs 代码无法遵循相关的 gcc 构建错误链接
- node.js - NodeJS-Heroku 加载图片资源失败:服务器响应状态为 502 (Bad Gateway)
- javascript - Find the clients' IP address using an ExpressJS app
- node.js - 为 npx create-react-app 创建文件的问题
- jquery - Kendo-UI Router 无限路由
- spring - PropertyPlaceholderConfigurer 与 xml 配置中的配置文件