首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要建立一个HashMap,Map<Set,Set>。有可能吗?

我需要建立一个HashMap,Map<Set,Set>。有可能吗?
EN

Stack Overflow用户
提问于 2014-01-30 17:12:36
回答 1查看 96关注 0票数 0

我在这里的用法是,我需要在一组字符串(例如同义词)中搜索字符串。如果我在字符串集中找到相关的搜索词,那么我将显示与该字符串集相关联的值集。我目前正在考虑将其实现为Map,但不确定这是否可行。

我对在这种情况下可以使用的最佳数据结构感到困惑吗?

谢谢你的帮助。

编辑取代了Set数组,因为它更有意义

场景:

Set-1 ={水罐,罐子,瓶子,杯子} Set-2 ={“储备水”,“储存果汁”,“商店咖啡”}

对于从水罐、罐子、瓶子、杯子收到的任何输入,我都应该从Set-2返回与其相关的属性。简单地说,当Set-1中的任何单词匹配时,我需要返回整个Set-2。希望这能澄清我的问题。

EN

回答 1

Stack Overflow用户

发布于 2014-01-30 17:24:09

您可以对这种行为进行子类NSObject。

代码语言:javascript
复制
@interface Synonyms : NSObject
@property NSArray *strings;
@property NSArray *values;
-(NSArray *)searchForWord:(NSString *)searchWord;
@end


@implementation Synonyms    
-(NSArray *)searchForWord:(NSString *)searchWord{
    BOOL found=NO;
    //add code to search for that search term in strings array

    if(found)
        return self.values;
    else
        return nil;
}
@end

因此,首先创建所有这些synonyms instances并将它们存储在NSArray中。为每个实例分配字符串和值数组。

当用户输入搜索词时,调用数组中每个元素的searchForWord函数.如果找到,它将不返回零object.else无同义词。

第2部分:

如果您正在寻找以下类型的行为,例如:

代码语言:javascript
复制
Dictionary myDic;

myDic.Add("car", "automobile");
myDic.Add("car", "autovehicle");
myDic.Add("car", "vehicle");
myDic.Add("bike", "vehicle");

myDic.ListOSyns("car") // should return {"automobile","autovehicle","vehicle" ± "car"}
                       // but "bike" should NOT be among the words returned

然后你可以使用NSDictionary,

代码语言:javascript
复制
NSDictionary *dictionary =@{@"car":@[@"automobile",@"autovehicle",@"vehicle"],@"bike":@[@"vehicle"]};

NSArray *values =[dictionary objectForKey:@"search-term"];
if(values==nil)
   //no result
else
   return values;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21463020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档