当前位置: 首页 > 面试题库 >

ArrayList问题

曾嘉言
2023-03-14
问题内容

我有两个值,small_redsmall_blue

private EnemyInfo small_red = new EnemyInfo("Red Fighter", Core.jf.getToolkit().createImage(Core.class.getResource("/com/resources/ENEMY_01.png")), 10, 100, new Location(0, 0), false, 0);
private EnemyInfo small_blue = new EnemyInfo("Blue Fighter", Core.jf.getToolkit().createImage(Core.class.getResource("/com/resources/ENEMY_02.png")), 50, 100, new Location(0, 0), false, 0);

和ArrayList:

private ArrayList<EnemyInfo> activeEnemies = new ArrayList<EnemyInfo>();

假设我将small_redsmall_blue敌人中的三个和五个添加到activeEnemies。每当我想更改数组内的变量时,例如:

activeEnemies.get(1).setActive(true); // change one of the small_red enemies

__small_red数组中的 每个都 被更改,而不仅仅是index处的一个1


问题答案:

您每次将3个对 同一个 smallRed敌人的引用添加到arraylist。

解释;

private EnemyInfo small_red; //I am a variable, I hold a reference to an EnemyInfo

new EnemyInfo(.....) //I create a new EnemyInfo object "somewhere" and return a reference to it so it can be used.

small_red可以被认为是一个内存地址(尽管比它复杂得多),因此您要多次添加相同的内存地址(例如,将相同的房屋地址添加到现实生活的地址簿中)。从地址簿中获取地址的哪个页面都没有关系;信件去同一个房子。

每次使用new关键字时,您都在创建对象的新实例,否则,您只是传递对旧对象的引用。



 类似资料:
  • 我试图用arraylist创建一个插入排序程序,但在其中的一些内容上出现了错误。 每当我尝试运行我的程序时,它都会说: 异常在线程"main"java.lang.IndexOutOfBounds异常:索引: 5,大小: 5在java.util.ArrayList.range检查(ArrayList.java:635)在java.util.ArrayList.get(ArrayList.java:4

  • 我是Java新手,目前正在为一个项目使用BlueJ。我在访问此类对象的ArrayList的ArrayList中的对象时遇到问题。假设我有一个学生对象: 然后是获取地址、月份、年份和等级的方法。然后我有一个类,它是学生对象的数组列表: 这个类包括添加学生对象、列出类中的所有学生(ListallStudentsInClass)的方法,该类返回学生的ArrayList、查找类中成绩最高的学生(getHi

  • 问题内容: 我知道这不是线程安全的,但是我不确定其确切含义。 在和都使用的情况下,以下哪种情况会引起问题并需要同步? 两个线程同时读取相同的索引 假设您不在乎获取旧元素还是新元素,则替换尝试同时访问的元素。 问题答案: 两个线程同时读取相同的索引 如果 列表是由分支and 的线程构造的,并且列表在线程被分支之前已完全构建并加载,则可以从公共线程读取多个线程。 这样做的原因是,使用线程和派生该线程的

  • 问题内容: 我不明白以下原因为何不起作用: 我的理解是编译器将“ int … args”转换为数组,因此上述代码应该可以工作。 不工作,我得到: 找不到符号符号:构造函数ArrayList(java.util.List >)位置:类java.util.ArrayList > 那就奇怪了。我没有将数组添加到数组列表中,而是将列表中的每个元素添加到arraylist中。这是怎么回事? 问题答案: Ja

  • 刚开始学习java大约一个月,我有几个关于arraylist和oop的问题 这个arraylist允许我将字符串添加到列表中并存储它,但是如果我有一个类调用簿呢 这三者有什么区别?假设我有大量的输入,比如文件 我有一个班级运动 我该怎么做呢?所以我用许多参数来添加这些输入,因为如果我想添加,我通常会这样做 我也会去

  • 我正在使用Gson库保存和检索玩家对象的ArrayList。 但当运行此活动时,我会得到以下错误日志: 原因:java。lang.IllegalStateException:应为BEGIN_数组,但在第1行第2列路径处为BEGIN_对象$ 这段代码怎么了?