Tag: 字典

确定Swift字典是否包含密钥并获取其任何值

我目前正在使用以下(笨拙的)代码片断来确定(非空)Swift字典是否包含给定的键和从同一字典中获取一个(任何)值。 怎么能把这个更优雅地放在Swift中呢? // excerpt from method that determines if dict contains key if let _ = dict[key] { return true } else { return false } // excerpt from method that obtains first value from dict for (_, value) in dict { return value }

你如何在Java中创build一个字典?

我正在努力实现一本字典(如在实体书中)。 我有一个单词列表及其含义。 Java提供什么数据结构/types来存储单词列表及其含义作为键/值对。 如果给定一个关键字,我可以find并返回值?

通用字典的大小写不敏感访问

我有一个使用托pipedll的应用程序。 其中一个DLL返回一个通用字典: Dictionary<string, int> MyDictionary; 字典包含大写和小写的键。 另一方面,我得到一个潜在的钥匙(string)列表,但我不能保证的情况下。 我正在尝试使用键获取字典中的值。 但是,当然以下将失败,因为我有一个案件不匹配: bool Success = MyDictionary.TryGetValue( MyIndex, out TheValue ); 我希望TryGetValue将有一个像MSDN文档中提到的忽略大小写标志,但它似乎对通用字典无效。 有没有办法让字典的价值忽略关键的情况? 有没有比使用正确的StringComparer.OrdinalIgnoreCase参数创build字典的新副本更好的解决方法?

Python:检查“Dictionary”是否为空似乎不起作用

我试图检查一个字典是否为空,但它不正常。 它只是跳过它,并显示在线没有任何东西,除了显示消息。 任何想法为什么? def isEmpty(self, dictionary): for element in dictionary: if element: return True return False def onMessage(self, socket, message): if self.isEmpty(self.users) == False: socket.send("Nobody is online, please use REGISTER command" \ " in order to register into the server") else: socket.send("ONLINE " + ' ' .join(self.users.keys()))

数组从字典键快速

尝试用swift中的字典中的键填充数组。 var componentArray: [String] let dict = NSDictionary(contentsOfFile: NSBundle.mainBundle().pathForResource("Components", ofType: "plist")!) componentArray = dict.allKeys 这将返回一个错误:“AnyObject”与string不相同 也试过 componentArray = dict.allKeys as String 但得到:'string'不能转换为[string]

在Dictionary中添加新的或更新现有项目的方法

在一些遗留代码中,我已经看到了下面的扩展方法,以便于添加新的键值项或更新值(如果键已经存在)。 方法1(遗留代码)。 public static void CreateNewOrUpdateExisting<TKey, TValue>( this IDictionary<TKey, TValue> map, TKey key, TValue value) { if (map.ContainsKey(key)) { map[key] = value; } else { map.Add(key, value); } } 虽然,我已经检查过map[key]=value是否完全一样的工作。 也就是说,这个方法可以用下面的方法-2代替。 方法2。 public static void CreateNewOrUpdateExisting<TKey, TValue>( this IDictionary<TKey, TValue> map, TKey key, TValue value) { map[key] = value; } 现在,我的问题是..如果我通过方法2replace方法1可以有任何问题吗? 它会在任何可能的情况下打破? 另外,我认为这曾经是HashTable和Dictionary之间的区别。 HashTable允许更新一个项目,或者通过使用索引器添加一个新的项目,而字典不! 这种差异在C#> […]

字典返回一个默认值,如果该键不存在

现在我发现自己在我的代码中经常使用当前的模式 var dictionary = new Dictionary<type, IList<othertype>>(); // Add stuff to dictionary var somethingElse = dictionary.ContainsKey(key) ? dictionary[key] : new List<othertype>(); // Do work with the somethingelse variable 或者有时候 var dictionary = new Dictionary<type, IList<othertype>>(); // Add stuff to dictionary IList<othertype> somethingElse; if(!dictionary.TryGetValue(key, out somethingElse) { somethingElse = new List<othertype>(); } 这两种方式都觉得很迂回。 我真正想要的是类似的东西 dictionary.GetValueOrDefault(key) 现在,我可以为字典类写一个扩展方法,但是我想我可能会丢失已经存在的东西。 […]

如何dynamic创build字典并添加键值对

来自: 发送一个JSON数组作为Dictionary <string,string>接收 我正在试图做同样的事情,那个职位。 唯一的问题是,我不知道什么是关键和价值观。 所以我需要能够dynamic地添加键和值对,我不知道该怎么做。 有谁知道如何创build该对象并dynamic添加键值对? 我试过了: var vars = [{key:"key", value:"value"}]; vars[0].key = "newkey"; vars[0].value = "newvalue"; 但是这不起作用。

Java – 如何创build新的条目(键,值)

我想创build类似于Util.Map.Entry新项目,它将包含结构key 。 问题是我不能实例化Map.Entry因为它是一个接口。 有谁知道如何为Map.Entry创build一个新的通用键/值对象?

Java基于时间的地图/caching与过期的关键

是否有人知道Java Map或类似的标准数据存储,在给定的超时后自动清除条目? 这意味着老化,旧的过期条目自动老化。 最好在通过Maven访问的开源库中? 我知道自己实现这些function的方法,并且在过去已经做了好几次,所以我并不是要求这方面的build议,而是指向一个很好的参考实现。 像WeakHashMap这样的基于WeakReference的解决scheme不是一种select,因为我的密钥可能是非干扰string,我想要一个不依赖于垃圾收集器的可configuration超时。 Ehcache也是我不想依赖的选项,因为它需要外部configuration文件。 我正在寻找一个只有代码的解决scheme。