0

大きな NSMutableArray にアイテムを格納しています。3 つの文字列が、この配列内の一意のアイテムを定義します。3 つの文字列キーを配列のエントリにマップする NSMutableDictionary が必要です。

私のコードでは、item の最初の 3 つのオブジェクトは、一意のアイテムを定義する 3 つの文字列です。検索を行うためのキーを最も効率的に作成するにはどうすればよいですか? stringWithFormat は最良のアイデアではないと思います。発生する大量の検索を高速化しようとしています。

- (void)addItem:(NSArray*)item {
    // create entry from item
    [mEntries addObject:entry]; 
    NSString *key = [NSString stringWithFormat:@"%@%@%@", [item objectAtIndex:0],
                               [item objectAtIndex:1],[item objectAtIndex:2]];
    [mEntryMap setObject:entry forKey:key];
}

- (Entry*)getItem:(NSArray*)strs {
    NSString *key = [NSString stringWithFormat:@"%@%@%@", [strs objectAtIndex:0],
                               [strs objectAtIndex:1],[strs objectAtIndex:2]];
    return [mEntryMap objectForKey:key];
}
4

1 に答える 1

0

long メソッドを使用する必要のない、配列から直接文字列を作成する

- (void)addItem:(NSArray*)item {
    // create entry from item
    [mEntries addObject:entry]; 
    NSString *key=[item componentsJoinedByString:@""];
    [mEntryMap setObject:entry forKey:key];
}

- (Entry*)getItem:(NSArray*)strs {
    NSString *key=[strs componentsJoinedByString:@""];
    return [mEntryMap objectForKey:key];
}
于 2013-03-20T13:26:05.060 に答える