gpt4 book ai didi

java - 自动从 HashMap 中删除值

转载 作者:行者123 更新时间:2023-12-02 07:27:08 25 4
gpt4 key购买 nike

我向 HashMap 添加了一些键值对。

添加键值对后,当我打印 HashMap 的大小时,我得到的大小为1。当我在另一个地方打印值时(在将值添加到键值对之后),我得到 HashMap 的大小为零。我不会从此类或任何其他外部类中删除添加到此 HashMap 的值。那么,hashmap大小如何变为零呢?有人可以解释一下吗?

感谢任何帮助。

代码在这里:

private HashMap <Context,BLEEventListeners> mHashMapCallbacks = new HashMap<Context,BLEEventListeners>();
public void startTimeServer(BLEEventListeners eventListener,Context context) {
mHashMapCallbacks.put(context, eventListener);
Log.d(TAG,"****Inside startTimeServer,mHashMapCallbacks size: " +mHashMapCallbacks.size());// I get 1 as size
Intent cmn_intent = new Intent(IServerCommon.class.getName());
Intent time_intent = new Intent(ITimeServer.class.getName());
mContext.bindService(time_intent, time_connection, Context.BIND_AUTO_CREATE);
mContext.bindService(cmn_intent, cmn_connection, Context.BIND_AUTO_CREATE);
}

private ICommonResultCallback callback = new ICommonResultCallback.Stub() {
public void receiveMessage(Bundle value) throws RemoteException {
Log.d(TAG,"****Inside connected,mHashMapCallbacks size: " +mHashMapCallbacks.size());// I get 0 as size
}
}

最佳答案

ICommonResultCallback() 看起来像一个回调函数。如果是,那么当调用该函数时,hashmap将被再次初始化。这是因为您的类的一个新实例也被创建用于回调。

您可以通过使用使 HashMap “静态”来验证这一点。然后它应该保留该值。

关于java - 自动从 HashMap 中删除值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13394983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com