如何在数组中不添加已存在的字符串?
数组A中存在很多重复的信息,如标题,分类,内容,根据分类进行处理后的信息为,标题放在一个数组,同一标题的内容放在一个数组。
操作时,创建两个可变数组a,b,并设置布尔变量,a赋值给b,由b进行遍历,重复时设置布尔变量值,并退出循环,同时在a中进行添删改的操作。
数据源:netDataArray
a数组:sectionTempArray
b数组: sectionTempCopyArray
全局数组: dataArray(在表视图查询使用时,一来可以获得对应单元格信息,二来可以通过表头标题获得其对应所有内容信息)
//类型区域对应信息
- (void)getTypeDataOfArea:(id)data typeId:(int)groupId
{
//网络数据源 数组格式(包含字典)
NSArray *netDataArray = (NSArray *)data;
//创建两个可变数组,一个用于循环遍历判断是否重复,一个用于添加元素操作
NSMutableArray *sectionTempArray = [[NSMutableArray alloc] initWithCapacity:32];
NSMutableArray *sectionTempCopyArray = [[NSMutableArray alloc] initWithCapacity:32];
//按类型获取表头信息
for (NSDictionary *dict in netDataArray)
{
[sectionTempCopyArray setArray:sectionTempArray];
//是否需要的类型
if (groupId == [[dict objectForKey:@"templateTypeId"] intValue])
{
if (sectionTempCopyArray.count == 0)
{
//添加表头 添加第一个元素
[sectionTempArray addObject:[dict objectForKey:@"areaName"]];
}
else
{
//设置bool值判断是否重复
BOOL isEqual = NO;
for (NSString *subString in sectionTempCopyArray)
{
if ([subString isEqualToString:[dict objectForKey:@"areaName"]])
{
isEqual = YES;
break;
}
}
//不存在重复则添加
if (!isEqual)
{
[sectionTempArray addObject:[dict objectForKey:@"areaName"]];
}
}
}
}
//表头标题数组
[sectionArray addObject:sectionTempArray];
[dataArray addObject:sectionTempArray];
//按类型和表头数据信息获取对应表头的
for (NSString *subString in [sectionArray lastObject])
{
NSMutableDictionary *cellTempDict = [[NSMutableDictionary alloc] initWithCapacity:32];
NSMutableArray *cellDataArray = [[NSMutableArray alloc] initWithCapacity:32];
for (NSDictionary *dict in netDataArray)
{
//是否需要的类型
if (groupId == [[dict objectForKey:@"templateTypeId"] intValue])
{
if ([subString isEqualToString:[dict objectForKey:@"areaName"]])
{
//获取单元格信息 名称、模板
[cellTempDict setObject:[dict objectForKey:@"orgName"] forKey:@"orgName"];
[cellTempDict setObject:[dict objectForKey:@"templateId"] forKey:@"templateId"];
[cellDataArray addObject:cellTempDict];
}
}
}
//单元格数据源
[cellArray addObject:cellDataArray];
[dataArray addObject:cellDataArray];
}
}