问题标签 [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.
java - Java HashMap containsKey 为现有对象返回 false
我有一个用于存储对象的 HashMap:
但是,当尝试检查键是否存在时,containsKey
方法返回false
.
equals
和hashCode
方法都实现了,但是没有找到key。
在调试一段代码时:
我有:
但
什么会导致这种奇怪的行为?
java - 在 Java 中调用 Map 的 containsKey(E e) 时发生了什么
我检查了源代码:
从源代码中,它只显示了“equal()”方法已被调用,所以如果我想在地图中放置一个自定义对象,我只需要覆盖“equal()”方法。所以我做了一个实验,结果是否定的......我必须同时覆盖 "equals()" 和 "hashCode()" 。所以我的问题是:
- 为什么必须覆盖这两种方法(equals(),hashCode())。
- “==”操作是否在内部调用“hashCode()”方法?
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 速度)。
编辑:现在我使用更智能的算法来获取子字符串,插入也非常快(时间很短)。
c# - 使用字典检查列表中的唯一元素是常见的做法吗?
假设我有一个对象列表 object Fruit
。水果有一个属性Name
。即Fruit1.Name = "Apple"
, Fruit2.Name = "Orange"
, Fruit3.Name = "Apple"
, Fruit4.Name = "Melon"
... 等
我想要一个独特水果的列表,列表中的每个水果都有唯一的名称。我想优化时间。我见过一些人这样做。这是最好的方法吗?
我听说字典查找非常快,所以我想这可能就是使用它的原因,但我想知道是否有更好的方法。
谢谢马特伯兰,我修正了错字。(还不能评论)
c# - Dictionary<>.ContainsKey 给出 RuntimeBinderException
在 .cshtml 中,我想检查 a 中是否存在密钥,Directory<int, Object>
但总是出错并且找不到原因。
这是我的代码:
我得到的错误:
当我只使用 .Key 或 .Value 时,它仍然有效。
编辑 - 解决方案
问题是什么,我不知道,但我已经用下面的代码解决了这个问题:
powershell - Powershell - 与 Containskey 匹配并设置哈希表的值不起作用
我正在编写Richard L. Mueller的脚本,以禁用我们 AD 中的非活动帐户。
现在我有我的 AD 用户的最新 LastLogon 日期。
然后我做:
我不使用它来禁用 ID,因为 LastLogonTimeStamp 有 9-14 天的延迟更新。并且使用 $arrUsers 中的真实上次登录日期,我想用它替换 LastLogonTimeStamp。所以我想使用用户 ID 匹配它们:
我这里有两个问题。
- 首先,“If ($arrUsers.ContainsKey("$inuser.samAccountName"))” 似乎不起作用。我总是得到一个错误的结果。
- 其次,要使用 "$inuser.LastLogonTimeStamp = $arrUsers["$inuser.samAccountName"]" 替换 LastLogonTimeStamp,我的 LastLogonTimeStamp 变为空白。
有人可以提供一些助手吗?
java - 通过键中的重叠日期搜索哈希图
我猜我只是把这一切都搞错了,但我很好奇,所以我想我会问。
我正在开发一个预订系统,只是为了复习一些设计模式。我有一个房间类和客户类,我想保留一个时间表,其中客户在哪些日期在哪些房间。
我最初的想法是基于日期范围和房间应始终确定客户这一事实:(DateRange, Room) -> Customer
这使用数据库很容易实现,但如果可能的话,我希望坚持使用某种原生数据结构,所以我开始使用以 Reservation 对象作为键和 Customer 对象作为值的索引的 hashmap : HashMap<Reservation, Customer> schedule;
Reservation 对象将包含开始日期、结束日期和房间对象。
如果日期重叠,我会覆盖(这是一个词吗?) Reservation 类的 equals 方法以返回 true。如果 hashmaps 使用 equals 方法作为主要比较器,这将完美地工作,但它们首先使用 hashcode 方法来提高效率。
所以我的选择似乎是要么覆盖保留中的 hashcode 方法(我知道我应该这样做),要么覆盖 Schedule 类中的 containsKey 方法。问题是我想不出一种方法让重叠的日期具有相同的哈希码,这让我相信使用 equals 方法进行这种比较只是一个坏主意。重写 containsKey 方法也是一个坏主意,因为它完全违背了 hashmap 的目的和效率。
那么......是否有另一种数据结构可以更好地解决这个问题,或者我只是完全不考虑所有这些,并且应该重组所有东西?
c# - 如何输出我的字典>?
我现在真的被我的字典输出困在这里:
我有这个代码来“填充”字典(基本上有 2 个):
这工作得很好,但现在我想搜索它。这意味着我有一个字符串,它存储来自我拥有的 Form1.class 中的“组合框”的“选择”。
现在我想在我的字典中查找该字符串,为此我有以下内容:
但是,是的,你是对的,它不起作用,控制台中的输出是:
而且我什至没有得到任何我的Console.WriteLine("Couln't check selected Name")
所以这意味着它将通过 IF 语句运行,但 Console.WriteLine 函数不起作用。
现在我的问题是,如何在 中查找我的 String SelectedItemName Dictionary<string, Dictionary<string,string>>
?
java - Java 找不到符号 - containsKey(Item)?
Checkout
在我的超市结账程序中,当我运行它时,它在方法的类中出现了这个错误addItem
:
找不到符号 - 方法 containsKey(Item)
我不明白为什么会出现这个错误,因为我检查了其他两个类(Item
和Stock
),我看不出它们有什么问题。
以下是课程:
感谢您的任何帮助和建议。
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.