があり、NSMutableDictionary
値とキーを交換したい。つまり、値がキーになり、それに対応するキーが値になると交換した後、すべてのキーと値は一意です。サイズが非常に大きいため、適切なソリューションを探しています。また、キーと値はNSString
オブジェクトです
質問する
3079 次
5 に答える
5
辞書を逆にする別の方法を次に示します。私にとって最も簡単です。
NSArray *keys = dictionary.allKeys;
NSArray *values = [dictionary objectsForKeys:keys notFoundMarker:[NSNull null]];
[dictionary removeAllObjects]; // In case of huge data sets release the contents.
NSDictionary *invertedDictionary = [NSDictionary dictionaryWithObjects:keys forKeys:values];
[dictionary setDictionary:invertedDictionary]; // In case you want to use the original dictionary.
于 2013-10-15T20:18:44.267 に答える
-1
for (NSString *key in [myDictionary allKeys]) {
NSString *value = [responseDataDic objectForKey:key];
[myDictionary removeObjectForKey:key];
[myDictionary addObject:key forKey:value];
}
前提: キーなし = 値。
複雑さ: 余分なスペースは必要ありません。一度ループして、すべてのキーと値のペアを置き換えます。
于 2013-10-15T20:06:32.260 に答える
-2
NSArray* allKeys = [theDict allKeys];
NSArray* allValues = [theDict allValues];
NSMutableDictionary* newDict = [NSMutableDictionary dictionaryWithObjects:allKeys forKeys:allValues];
于 2013-10-15T17:57:47.697 に答える