问题标签 [containskey]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
49389 浏览

java - Java HashMap containsKey 为现有对象返回 false

我有一个用于存储对象的 HashMap:

但是,当尝试检查键是否存在时,containsKey方法返回false.
equalshashCode方法都实现了,但是没有找到key。
在调试一段代码时:

我有:

什么会导致这种奇怪的行为?

0 投票
2 回答
314 浏览

java - 在 Java 中调用 Map 的 containsKey(E e) 时发生了什么


我检查了源代码:


从源代码中,它只显示了“equal()”方法已被调用,所以如果我想在地图中放置一个自定义对象,我只需要覆盖“equal()”方法。所以我做了一个实验,结果是否定的......我必须同时覆盖 "equals()" 和 "hashCode()" 。所以我的问题是:

  1. 为什么必须覆盖这两种方法(equals(),hashCode())。
  2. “==”操作是否在内部调用“hashCode()”方法?
0 投票
2 回答
123 浏览

c# - key.contains(x) Map/Dictionary 的适当数据结构

我在这里解释的术语和复杂性有些挣扎,请随时编辑它。

我有 1.000 - 20.000 个对象。每一个都可以包含几个名字词(第一,第二,中间,最后,头衔......)和标准化数字(家庭,企业......),电子邮件地址甚至物理地址和配偶姓名。

我想实现一个搜索,使用户可以自由组合单词部分和数字部分。
当我搜索“LL 676”时,我想找到所有包含“LL”和“676”字符串的对象。
目前我正在遍历每个对象和每个对象属性,将 searchString 拆分为“”并执行 stringInstance.Contains(searchword)。

这太慢了,所以我正在寻找更好的解决方案。

什么是合适的与语言无关的数据结构?
就我而言,我需要它用于 C#。

以下数据结构是一个好的解决方案吗?


它基于 HashMap/Dictionary。
首先,我创建了一个字符串,其中包含我想要查看的所有姓名部分和电话号码,一个示例是:“William Bill Henry Gates III 3. +436760000 billgatesstreet 12”:
然后我拆分为“”,每个单词 x我创建了所有可能的子字符串 y 来填充 x.contains(y)。我把这些子字符串中的每一个都放在了 hashmap/dictionary 中。
在查找/搜索时,我只需要调用每个搜索词的搜索并加入结果。自然,查找速度非常快(原生 Hashmap/Dictionary 速度)。

编辑:现在我使用更智能的算法来获取子字符串,插入也非常快(时间很短)。

0 投票
4 回答
175 浏览

c# - 使用字典检查列表中的唯一元素是常见的做法吗?

假设我有一个对象列表 object Fruit。水果有一个属性Name。即Fruit1.Name = "Apple", Fruit2.Name = "Orange", Fruit3.Name = "Apple", Fruit4.Name = "Melon"... 等

我想要一个独特水果的列表,列表中的每个水果都有唯一的名称。我想优化时间。我见过一些人这样做。这是最好的方法吗?

我听说字典查找非常快,所以我想这可能就是使用它的原因,但我想知道是否有更好的方法。

谢谢马特伯兰,我修正了错字。(还不能评论)

0 投票
2 回答
708 浏览

c# - Dictionary<>.ContainsKey 给出 RuntimeBinderException

在 .cshtml 中,我想检查 a 中是否存在密钥,Directory<int, Object>但总是出错并且找不到原因。

这是我的代码:

我得到的错误:

当我只使用 .Key 或 .Value 时,它​​仍然有效。

编辑 - 解决方案

问题是什么,我不知道,但我已经用下面的代码解决了这个问题:

0 投票
2 回答
16541 浏览

powershell - Powershell - 与 Containskey 匹配并设置哈希表的值不起作用

我正在编写Richard L. Mueller的脚本,以禁用我们 AD 中的非活动帐户。

现在我有我的 AD 用户的最新 LastLogon 日期。

然后我做:

我不使用它来禁用 ID,因为 LastLogonTimeStamp 有 9-14 天的延迟更新。并且使用 $arrUsers 中的真实上次登录日期,我想用它替换 LastLogonTimeStamp。所以我想使用用户 ID 匹配它们:

我这里有两个问题。

  1. 首先,“If ($arrUsers.ContainsKey("$inuser.samAccountName"))” 似乎不起作用。我总是得到一个错误的结果。
  2. 其次,要使用 "$inuser.LastLogonTimeStamp = $arrUsers["$inuser.samAccountName"]" 替换 LastLogonTimeStamp,我的 LastLogonTimeStamp 变为空白。

有人可以提供一些助手吗?

0 投票
0 回答
428 浏览

java - 通过键中的重叠日期搜索哈希图

我猜我只是把这一切都搞错了,但我很好奇,所以我想我会问。

我正在开发一个预订系统,只是为了复习一些设计模式。我有一个房间类和客户类,我想保留一个时间表,其中客户在哪些日期在哪些房间。

我最初的想法是基于日期范围和房间应始终确定客户这一事实:(DateRange, Room) -> Customer

这使用数据库很容易实现,但如果可能的话,我希望坚持使用某种原生数据结构,所以我开始使用以 Reservation 对象作为键和 Customer 对象作为值的索引的 hashmap : HashMap<Reservation, Customer> schedule;Reservation 对象将包含开始日期、结束日期和房间对象。

如果日期重叠,我会覆盖(这是一个词吗?) Reservation 类的 equals 方法以返回 true。如果 hashmaps 使用 equals 方法作为主要比较器,这将完美地工作,但它们首先使用 hashcode 方法来提高效率。

所以我的选择似乎是要么覆盖保留中的 hashcode 方法(我知道我应该这样做),要么覆盖 Schedule 类中的 containsKey 方法。问题是我想不出一种方法让重叠的日期具有相同的哈希码,这让我相信使用 equals 方法进行这种比较只是一个坏主意。重写 containsKey 方法也是一个坏主意,因为它完全违背了 hashmap 的目的和效率。

那么......是否有另一种数据结构可以更好地解决这个问题,或者我只是完全不考虑所有这些,并且应该重组所有东西?

0 投票
3 回答
2994 浏览

c# - 如何输出我的字典>?

我现在真的被我的字典输出困在这里:

我有这个代码来“填充”字典(基本上有 2 个):

这工作得很好,但现在我想搜索它。这意味着我有一个字符串,它存储来自我拥有的 Form1.class 中的“组合框”的“选择”。

现在我想在我的字典中查找该字符串,为此我有以下内容:

但是,是的,你是对的,它不起作用,控制台中的输出是:

而且我什至没有得到任何我的Console.WriteLine("Couln't check selected Name")所以这意味着它将通过 IF 语句运行,但 Console.WriteLine 函数不起作用。

现在我的问题是,如何在 中查找我的 String SelectedItemName Dictionary<string, Dictionary<string,string>>

0 投票
1 回答
4164 浏览

java - Java 找不到符号 - containsKey(Item)?

Checkout在我的超市结账程序中,当我运行它时,它在方法的类中出现了这个错误addItem

找不到符号 - 方法 containsKey(Item)

我不明白为什么会出现这个错误,因为我检查了其他两个类(ItemStock),我看不出它们有什么问题。

以下是课程:



感谢您的任何帮助和建议。

0 投票
2 回答
136 浏览

java - Why hashTable contains redundant Keys

I have a problem with Hashtable; it contains redundant keys. I have redefined the equal and the hashcode, but the same problem. below is an example of my problem. I'm really need help. Thank you in advance.