java - 从对象 ArrayList 中删除对象
问题描述
我创建了一个对象 ArrayList,
private ArrayList<Object> objects;
我在构造函数中初始化它。
public ObjectManager(Handler handler) {
this.handler = handler;
objects = new ArrayList<>();
}
然后将此 ArrayList 绘制/添加到画布中。
public void renderObjects(Graphics g) {
handler.getObjectManager().addObject(new InstanceOfObject(handler, 1000, 1000, g));
}
addObject() 方法将对象添加到 ArrayList。
public void addObject(Object e) {
objects.add(e);
}
我想稍后通过使用类似的代码行来删除这个对象,
public void removeObject(Object e) {
objects.remove(e);
}
但是我不知道该怎么做,因为我不知道如何传入要删除的对象。我能想到传入对象的唯一方法是执行以下操作:
handler.getObjectManager().removeObject(new InstanceOfObject(handler, 1000, 1000, g));
我什至不知道这是否可行,因为它正在删除一个“新”对象。即使是这样,“g”也没有定义。如果我在构造函数中定义它,我必须更改许多不同的东西,这会导致错误(通常是 NullPointerException),但即使这样我也无法弄清楚如何通过传入 Graphics g 参数来调用此方法。
解决方案
您的问题不清楚,但这可能会有所帮助。
实现的List
接口ArrayList
已经提供了一个remove
方法。您无需重新发明它。
对象引用
要删除对象,请保留并传递对特定对象的引用。
Dog alice = new Dog( "Alice" , "Labrador" ) ;
Dog bob = new Dog( "Bob" , "Chihuahua" ) ;
List< Dog > dogs = new ArrayList<>() ;
dogs.add( alice ) ;
dogs.add( bob ) ;
…
dogs.remove( bob ) ;
索引号
或者,记住包含要删除的对象的列表的槽(索引)。将该从零开始的索引号传递给该remove
方法。
推荐阅读
- android - 谷歌开发者账户被终止:怎么办?
- swift - 为什么我在 Swift 中使用 pow 得到错误答案?
- react-native - React Native 不支持 BigInt
- typescript - 转换对象中具有相同键的数组
- regex - 更改字符串后删除所有内容
- python - 熊猫:自定义 fillna() 函数?
- python - 如何使用 python pandas 将 sql 查询(或存储过程)的多个 SELECT 输出保存到单独的数据框(数据框列表)中
- ios - Big Sur 安装后加载时 XCode 崩溃
- python - 使用 discord.py 保存和使用冗长的句子
- amazon-web-services - AWS codebuild 是否允许使用 bitbucket 企业服务器?