を持つオブジェクトのキャッシュ、問題としてHashMapを作成します。は、私が</p> <p>Imは、50%のTE中に同一の多数のオブジェクトを生成するので、私は私と思っ幅アンドロイドSDKを働いている私は、Javaに新たなんだキーオブジェクト
class CachePathKey {
private int mPathID;
private int mStartIndex;
private float mZF;
private float mWidthSprite;
private float mHeightSprite;
public CachePathKey(int pPathID, int pStartIndex, float pZf,
float pWidthSprite, float pHeightSprite) {
this.mPathID =pPathID;
this.mStartIndex = pStartIndex;
this.mZF = pZf;
this.mWidthSprite = pWidthSprite;
this.mHeightSprite = pHeightSprite;
}
}
しかし、デバッグ、およびのcontainsKeyは常にfalse
012を返すとき、私はキーとしてヌルをしました:シンプルなキャッシュ機構private HashMap<CachePathKey, Path> mCachedPaths;
public Path GenerateRealPath(final Sprite pSprite,final int pStartIndex){
CachePathKey mCachedKey = new CachePathKey(mPathID, pStartIndex, MyGame.mCamera.getZoomFactor(), pSprite.getWidth(), pSprite.getHeight());
if (!mCachedPaths.containsKey(mCachedKey)){
//generate Path Object to p
mCachedPaths.put(mCachedKey,p);
return p;
} else {
return mCachedPaths.get(mCachedKey);
}
とCachePathKeyを実装することができますすることです
私は間違っているのですか?
すべてが一意で、aは(mPathID = 1、mZF = 1)または(mPathID = 1、mZF = 0.9f)を持つことができます –
あなたはあなたのオブジェクトを一意に識別する必要があります –
は、 !ありがとう –