iOS 数组操作

Posted 长沙火山

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 数组操作相关的知识,希望对你有一定的参考价值。

一、数组去重

1.1 利用字典Key不能重复的属性

NSArray *testArr = @[@"1",@"2",@"3",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9"];
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
for (NSInteger i=0; i<testArr.count; i++) 
	[dict setObject:testArr[i] forKey:testArr[i]];

testArr = [dict allKeys];

1.2 利用NSSet不能存在重复元素的属性

NSArray *testArr = @[@"1",@"2",@"3",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9"];
NSSet *set = [NSSet setWithArray:testArr];
testArr = [set allObjects];
NSLog(@"arr:%@", testArr);

1.3 利用数组 containsObject 方法

NSArray *testArr = @[@"1",@"2",@"3",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9"];
NSMutableArray *tempArr = [[NSMutableArray alloc] init];
for (NSInteger i=0; i<testArr.count; i++) 
  if (![tempArr containsObject:testArr[i]]) 
    [tempArr addObject:testArr[i]];
  

testArr = tempArr;
NSLog(@"arr:%@", testArr);

1.4 利用KVC 方法

NSArray *testArr = @[@"1",@"2",@"3",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9"];
testArr = [testArr valueForKeyPath:@"@distinctUnionOfObjects.self"];
NSLog(@"arr:%@", testArr);

拓展:获取数组里的:最大、最小、平均、求和。

NSArray *array = @[@"1",@"3",@2,@9.5,@"1.2"]; 
NSNumber *sum = [array valueForKeyPath:@"@sum.floatValue"]; 
NSNumber *avg = [array valueForKeyPath:@"@avg.floatValue"]; 
NSNumber *max = [array valueForKeyPath:@"@max.floatValue"]; 
NSNumber *min = [array valueForKeyPath:@"@min.floatValue"];  
NSLog(@"sum:%@",sum); 
NSLog(@"avg:%@",avg);
NSLog(@"max:%@",max); 
NSLog(@"min:%@",min);

二、删除数组中的元素

2.1 删除数组中相同地址的元素,一次只删除一个

- (void)deletePhotoModel:(HSAlbumPickerModel *)photoModel

    for (NSInteger i=0; i<self.selectedData.count; i++) 
        if (self.selectedData[i] == photoModel.asset) 
            [self.selectedData removeObjectAtIndex:i];
            break;;
        
    

以上是关于iOS 数组操作的主要内容,如果未能解决你的问题,请参考以下文章

iOS不可变数组的所有操作

Java学习之IO流(其他操作流 操作基本数据类型操作字节数组操作字符数组操作字符串)

iOS 数组操作

iOS 数组操作

iOS可变数组添加元素 以及可变数组操作

使用POI对excel进行操作生成二维数组