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

ConcurrentHashMap具有弱键和身份哈希?

闻人升
2023-03-14
问题内容

如何ConcurrentHashMap在Java中获得带有弱密钥和身份哈希的?我认为Google Guava
Collections可以提供这种功能,但是我可以从标准库中获取吗?我还有什么其他选择?


问题答案:

我认为Google Guava Collections可以提供这种功能,但是我可以从标准库中获取吗?

对此的简短答案是“否”。Java SE没有实现此特定组合。

  • 您可以java.util.concurrent.ConcurrentHashMap使用WeakReference键实例化a ,并做一些额外的工作来实现删除损坏的引用的映射项,但这不会为您提供身份哈希语义。

  • 您可以java.util.IdentityHashMap使用WeakReference键实例化a ,并做一些额外的工作来实现删除损坏的引用的映射项,但这不会给您带来并发的行为。

  • 使用java.util.WeakHashMap不会给您带来并发或身份哈希。

  • 您(理论上)可以将键类包装在某种覆盖自然equalshashcode方法的东西中。但这很可能无法使用。

  • 我认为不可能通过覆盖ConcurrentHashMap或中的方法来做到这一点IdentityHashMap

也许是唯一可行的办法是 改变
的关键类equalshashcode方法基于身份是。但这不适用于“内置”键类型(尤其是键类型final)或在应用程序的其他部分中需要基于值的equals
/ hashcode的情况。



 类似资料:
  • 问题内容: 我一直在玩漂亮的汤和解析网页几天。在编写的所有脚本中,我一直使用一行代码作为救星。代码行是: 但是… 我想对(OPEN A URL WITH AUTHENTICATION)做同样的事情: 我无法打开网址并阅读需要身份验证的网页。我如何实现这样的目标: 问题答案: 看看官方文档中的如何使用urllib软件包获取Internet资源:

  • 我可以有一个哈希图在Java看起来像这样吗? 我的问题和这里的类似问题 我是Java新手。所以我想知道的是,如果我需要上面这样的东西,如果它无效,什么是最好的数据结构?

  • 我在谷歌云平台上部署了一个web应用程序 在这个网络应用程序中,我们需要在google身份上设置对用户的身份验证,并根据他们的角色对他们进行授权。 我们采用了基于SAML的方法,其中包括 创建SAML应用程序作为身份提供者 设置SAML断言使用者服务(ACS) 通过ACS使用webapp中的身份 现在,与其开发一个明确的ACS,我们可以 在GCP中启用Identity Platform 设置SAM

  • 由来 在日常开发中,我们对身份证的验证主要是正则方式(位数,数字范围等),但是中国身份证,尤其18位身份证每一位都有严格规定,并且最后一位为校验位。而我们在实际应用中,针对身份证的验证理应严格至此。于是IdcardUtil应运而生。 IdcardUtil从3.0.4版本起加入Hutool工具家族,请升级至此版本以上可使用。 介绍 IdcardUtil现在支持大陆15位、18位身份证,港澳台10位身

  • 问题内容: 我有一个主要的领域:,子:,和其他领域,。 现在完成如下操作: login.php 在每个页面上添加: logout.php 但它仅适用于域及其子域,。 我需要以某种方式保存会话和其他域,。 如何最好地进行安全身份验证,如果有解决方案,我真的很困惑,请举例说明。 问题答案: 据我所知,跨子域之间的会话很好,但不会延续到整个新域。为此,您需要某种集中式数据方法或API。 数据库方法: 您

  • 我正在尝试创建一个服务来验证Angular2中的用户名和密码。下面是authentication.service.ts的代码 这是我使用slim框架的index.php 我的问题是我无法从容器['jwt']获取令牌。如果我给出了不正确的用户名和密码,那么令牌将保持为NULL。但如果我给出正确的用户名和密码。$result变量为我提供数据库中的数据。我可以验证密码。但是$request->getAt