0

我有一个名为 PlayerList 的类,在该类中我有一个这样定义的 ArrayList:

private ArrayList<Bitmap> images = new ArrayList<Bitmap>();

现在,一个 ArrayList 删除方法可以 exept 2 个参数,一个索引和一个对象。

我试图通过将位图发送给它来从数组中删除位图。问题是位图由相同的图像组成,但是我保存在数组中的位图的实例与我试图找到的不同,当我将 ArrayList 打印到控制台时,我总是看到新名称,东西喜欢 :

[android.graphics.Bitmap@44ea2d48, android.graphics.Bitmap@44ea2e20]

这可能有关系吗?当我们在做的时候,该类实现Parcelable了来回读取/写入的数据,这也不能太健康,对吧?

我错过了一个通用问题还是它的代码特定,我应该发布我的代码?

我的问题基本上是当我尝试删除位图时,它总是删除数组列表中的错误项目,总是在我需要的 1 之前删除

4

1 回答 1

0

除非您有BitMap's哈希码的句柄或存储它的类似键,否则您无法从列表中删除所需的一个。如果只想依赖BitMap存储,则需要遍历列表并解析元素以找到所需的位图。同样,您需要一个 hascode 来确定BitMap您正在解析的内容是否是您正在寻找的内容。这意味着您需要维护hashcode's每个BitMap存储的列表。或者使用HashMapover Listthat 允许存储key一个BitMap被存储的对象。您可以根据需要处理您的要求,key并在需要时使用它BitMapHashMap表中删除 a。

HashMap<String, BitMap> myBitMaps = ... // construct as you desire.
...
if ( condition satisfied on key ) {
  myBitMaps.remove( keyObject );
  // process further
}
于 2012-05-28T18:33:39.017 回答