【OC04-2】数组、可变数组(连载五)

本文深入探讨了iOS开发与Android开发的关键技术、工具和框架,包括Swift与Objective-C,Xcode与Android Studio,以及UI设计、性能优化、安全性等方面的不同与相似之处。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**********************************************************/
//定义三个字符串对象
       
NSString *s1 = @"张三";
       
NSString *s2 = @"李四";
       
NSString *s3 = @"王五";
       
/************* 数组创建  ***************************************/
        //通过alloc创建
       
NSArray *array1 = [[NSArray alloc]initWithObjects:s1, s2, s3 , nil];
       
//通过类方法创建
       
NSArray *array2 = [NSArray arrayWithObjects:s1, s2, s3, nil];
//        NSLog(@"array1 is %@, array2 is %@",array1, array2);
       
/**********************************************************/
/******** NSArray的常用方法******************************/
/**********************************************************/
        //获取下标为0的对象
       
NSString *str1 = [array1 objectAtIndex:0];
       
NSLog(@"%@",str1); //结果:张三
       
       
//获取数组中元素的个数:
       
NSUInteger count = [array1 count];
       
NSLog(@"%ld",count); //结果:3
       
       
//判断是否包含某个对象:
       
BOOL isContain = [array1 containsObject:@"张三"];
       
NSLog(@"%d",isContain); //结果:1
       
       
//对象在数组中的索引位置
       
NSUInteger index = [array2 indexOfObject:@"李四"];
       
NSLog(@"%ld",index); //结果:1
       
       
//连接数组中的字符串
       
NSString *str = [array2 componentsJoinedByString:@","];
       
NSLog(@"%@",str); //结果:张三,李四,王五
       
       
//获取最后一个元素对象
       
NSString *lastString = [array2 lastObject];
       
NSLog(@"%@",lastString); //结果:王五
       
       
       
 /******** xcode 4.4 以后,对数组的创建和访问,语法上做了修改***********/
        //将三个数组对象s1,s2,s3装入数组
       
NSArray *array3 = @[s1, s2, s3];
//        NSLog(@"%@",array3);
       
       
//通过下标获取元素
       
NSString *s4 = array3[2];
        NSLog(@"%@",s4); //结果:王五

/**********************************************************/
/************* NSMutableArray 可变数组  ********************/

//NSMutableArray是可变数组,数组中存储空间是可以动态修改的
//NSMutableArray继承于NSArrayNSArray的方法都可以使用
       
       
//1.1====创建可变数组,设定5个存储空间,空间可以自动调整=========
       
NSMutableArray *array1 = [[NSMutableArray alloc]initWithCapacity:5];
       
//1.2====初始化3个元素装入数组==============================
       
NSString *s1 = @"a";
       
NSString *s2 = @"b";
       
NSString *s3 = @"c";
       
NSMutableArray *array2 = [[NSMutableArray alloc]initWithObjects:s1,s2,s3, nil];
       
//2=======添加元素=========================================
        [array1
addObject:s1];
        [array1
addObject:s2];
        [array1
addObject:s3];
       
       
//3======指定位置插入元素===================================
        [array1
insertObject:@"赵六" atIndex:1];
       
       
       
       
//4======替换元素==========================================
       
       
//将位置为0的元素替换为张三
        [array1
replaceObjectAtIndex:0 withObject:@"张三"];
       
//索引1和索引2上的元素调换
        [array1
exchangeObjectAtIndex:1 withObjectAtIndex:2];
       
       
       
//5======添加元素==========================================
       
//将数组array2中所有元素全部添加到array1
        [array1
addObjectsFromArray:array2];
       
       
//6======删除元素==========================================
       
//删除指定位置的元素
        [array1
removeObjectAtIndex:0];
       
       
//删除指定的对象
        [array1
removeObject:@"张三"];
       
       
//删除最后一个元素
        [array1
removeLastObject];
       
       
//删除所有
        [array1
removeAllObjects];
       
       
 /**************** 遍历数组 **********************************/
       
       
//常规遍历(循环取出所有元素):
       
for (int i = 0; i < [array2 count]; i++) {
           
NSString *ss1 = [array2 objectAtIndex:i];
           
NSLog(@"%@",ss1);
        }
       
       
//快速遍历(快速遍历所有元素):
       
for (NSString *ss2 in array2) {
           
NSLog(@"%@",ss2);
        }








/************** 11111111111111111111 **********************************/
        /*
        
循环录入班里5位学生的成绩,将成绩保存到数组中,然后求5位学生成绩的平均分
         */
        NSMutableArray *score = [[NSMutableArray alloc]initWithCapacity:5];
        CGFloat sum = 0;//总成绩
        for (int i = 1; i <= 5; i++) {
            NSLog(@"请输入第%d个学生的成绩:",i);
            char *c = alloca(9);
            scanf("%s",c);
            NSString *a = [NSString stringWithCString:c encoding:NSUTF8StringEncoding];
            [score addObject:a];
            sum += [a floatValue];
        }
        CGFloat avg = sum / [score count];
        NSLog(@"5位学生的平均成绩为:%.2f",avg);
       
       
/************** 222222222222222222222 **********************************/
        /*
        
循环录入6个数值放入数组,然后求其中的最大值
         */

       
NSMutableArray *number = [[NSMutableArray alloc]initWithCapacity:5];
       
CGFloat max = 0;//最大值
       
for (int i = 1; i <= 6; i++) {
           
NSLog(@"请输入第%d个数:",i);
           
char *c1 = alloca(9);
           
scanf("%s",c1);
           
NSString *a1 = [NSString stringWithCString:c1 encoding:NSUTF8StringEncoding];
            [number
addObject:a1];
           
int b = [a1 floatValue];
           
/*把第1个输入的数直接赋值给max,保证即使输入的数都小于0,也一样能找到他们的最大值
             */

           
if (i == 1) {
                max = b;
            }
           
           
if (b > max) {
                max = b;
            }
        }
       
NSLog(@"6个数的最大值为:%.2f",max);

/************** 33333333333333333333 **********************************/
 /*
         1.
构建一个数组,含有100 1~100 的整数,并用不同的方式将它们遍历出来
         */

       
//构建一个数组
       
NSMutableArray *array1 = [[NSMutableArray alloc]initWithCapacity:100];
       
for (int i = 1; i <= 100; i++) {
           
//将整型i转化为字符串
           
NSString *str = [NSString stringWithFormat:@"%d",i];
            [array1
addObject:str];
        }
       
//遍历数组
       
//普通遍历
       
for (int i = 0; i < [array1 count]; i++) {
           
NSLog(@"%@",array1[i]);
        }
       
       
//快速遍历
       
for (NSString *str in array1) {
           
NSLog(@"%@",str);
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值