我有一个 NSMutableDictionary
,我想交换值和键。即,在交换值成为键之后,其对应的键成为值所有键和值都是唯一的。正在寻找一个就地解决方案,因为尺寸非常大。此外,键和值是 NSString
对象
最佳答案
NSMutableDictionary *d = [NSMutableDictionary dictionaryWithDictionary:@{
@"key1" : @"value1",
@"key2" : @"value2"}];
for (NSString *key in [d allKeys]) {
d[d[key]] = key;
[d removeObjectForKey:key];
}
NSLog(@"%@", d); // => { value1 : key1,
// value2 : key2 }
假设
- 唯一值(因为它们将成为键)
- 值符合
NSCopying
(同上) - 没有值等于任何键(否则冲突名称将在此过程中丢失)
关于iphone - 如何就地交换 `NSMutableDictionary` 键和值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19387631/