zoukankan      html  css  js  c++  java
  • NSArray NSMutableArray

       //NSArray:不可变数组类
        
        //创建一个数组
    //    NSString *string = @"iPhone";
    //    NSArray *array = [NSArray arrayWithObject:string];
        
    //    NSArray *array = [NSArray arrayWithObject:@"iPhone"];
        
        //数组内部存放的元素必须是对象类型
    //    NSArray *array = [NSArray arrayWithObject:@"1"];
        
        //取数组中的元素,元素下标从0开始
    //    NSLog(@"%@", array[0]);
        
        //取到数组的元素,并做转化
    //    NSInteger a = [array[0] integerValue];
    //    NSLog(@"%ld", a);
        
        //创建一个有多个元素的不可变数组
        //nil是数组结束的标识符
        //数组的元素不确定,必须要加nil
    //    NSArray *array = [NSArray arrayWithObjects:@"aaa", @"bbb", @"ccc", nil];
        
        //数组越界,程序崩溃
        //array[3];

        
        //得到数组的元素个数(不计算最后的nil)
    //    NSUInteger count = [array count];
    //    NSLog(@"%lu", count);
        
        //打印数组的每个元素
    //    for (int i = 0; i < [array count]; i++) {
    //        NSLog(@"%@", array[i]);
    //    }
        
        //快捷打印数组(查看每个元素)
    //    NSLog(@"%@", array);
        
    //    Person *person1 = [Person personWithName:@"zhangsan" age:12];
    //    Person *person2 = [Person personWithName:@"lisi" age:14];
    //    Person *person3 = [Person personWithName:@"wangwu" age:18];
    //    
    //    NSArray *array = [[NSArray alloc] initWithObjects:person1, person2, person3, nil];
    //    
    //    NSLog(@"%@", array);
    //    NSLog(@"%@", [array[1] name]);
        
        //数组中存放的元素必须是对象,但是对象的类型可以不同
        
        //NSArray是一个不可变的数组,一旦被创建,就不能改变(元素个数不能增减,元素内容不能变化)
    //    array[0] = @"123123";
        //不可变数组,实质是一个指针数组,存放的元素都是指针.不可变指的是,每个元素(指针)不能重定向,指针指向的内容可以更改
    //    [person2 setName:@"123"];
    //    NSLog(@"%@", array);
        
        //NSMutableArray:可变数组,NSArray的子类,可以增删改
        
        //创建一个可变数组
    //    NSMutableArray * mArray = [[NSMutableArray alloc] initWithCapacity:0];
        
        //向数组中添加元素
        //@"aaa",person
        //一个一个加(加到数组最后一个元素后面)
    //    [mArray addObject:@"aaa"];
        
    //    //1
    //    Person *person = [Person personWithName:@"xiaoming" age:18];
    //    [mArray addObject:person];
    //    //2
    //    [mArray addObject:[Person personWithName:@"xiaoming" age:18]];
        
        //一起加(按照你给的数组里元素的顺序添加)
    //    NSArray *array = [NSArray arrayWithObjects:@"aaa", person, nil];
        //array中的每一个元素取出来,添加到mArray
    //    [mArray addObjectsFromArray:array];
        //把array(当成一个对象)添加到mArray中 //    [mArray addObject:array]; //    NSLog(@"%@", mArray);      //    //1 //    NSArray *array = [NSArray arrayWithObjects:@"aaa", person, nil]; //    [mArray addObjectsFromArray:array]; //    //2 //    [mArray addObjectsFromArray:[NSArray arrayWithObjects:@"aaa", [Person personWithName:@"xiaoming" age:18], nil]];           //    NSMutableArray * mArray = [[NSMutableArray alloc] initWithCapacity:0]; // //    //增 //    [mArray addObject:@"123"]; //    [mArray addObject:@"789"]; //    [mArray addObject:@"321"];//456      //    //删除数组中的一个元素 //    [mArray removeObjectAtIndex:1]; //    NSLog(@"%@", mArray); //     //    //删除数组中的所有元素 //    [mArray removeAllObjects]; //    NSLog(@"%@", mArray);      //    //修改某个元素的值 //    [mArray replaceObjectAtIndex:2 withObject:@"456"]; //    NSLog(@"%@", mArray); //     //    //交换两个元素 //    [mArray exchangeObjectAtIndex:1 withObjectAtIndex:2]; //    NSLog(@"%@", mArray);      //    NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:0]; //     //    for (int i = 0; i < 10; i++) { //        int a = arc4random() % 101 + 50; //        NSString *string = [NSString stringWithFormat:@"%d", a]; //        array[i] = string; //    } //     //    NSLog(@"%@", array); //     //    for (int i = 0; i < [array count] - 1; i++) { //        for (int j = 0; j < [array count] - 1 - i; j++) { //            int a1 = [array[j] intValue]; //            int a2 = [array[j + 1] intValue]; //            if (a1 > a2) { //                [array exchangeObjectAtIndex:j withObjectAtIndex:j + 1]; //            } //        } //    } //     //    NSLog(@"%@", array); //     //    //姓名的排序 //    NSArray *array1 = [array sortedArrayUsingSelector:@selector(compare:)]; //    NSLog(@"%@", array1);      //    Library *library = [[Library alloc] init]; //     //    Book *book1 = [Book bookWithName:@"西游记" price:100]; //    Book *book2 = [Book bookWithName:@"三国演义" price:200]; //    Book *book3 = [Book bookWithName:@"水浒传" price:300]; //    Book *book4 = [Book bookWithName:@"红楼梦" price:400]; //     //    [library addBook:book1]; //    [library addBook:book2]; //    [library addBook:book3]; //    [library addBook:book4]; //     //    [library removeBook:book3]; //     //    [library showBookList]; // //    [library modifyPriceOfBookWithName:@"红楼梦" price:401];               //NSNumber,把C语言中的基本数据类型,转化成OC中的对象类型     int i = 5;     NSNumber *num1 = [NSNumber numberWithInt:i];     NSLog(@"%@", num1);          int j = [num1 intValue];     NSLog(@"%d", j);           //    int a = 1; //    char b = 'A'; //    short c = 8; //    float d = 8.99; //    BOOL e = YES; //     //    NSArray *array = [NSArray arrayWithObjects: //                      [NSNumber numberWithInt:a], //                      [NSNumber numberWithChar:b], //                      [NSNumber numberWithShort:c], //                      [NSNumber numberWithFloat:d], //                      [NSNumber numberWithBool:e], //                      nil]; //     //    NSLog(@"%@", array);                    //快捷的方式转NSNumber //    NSArray *array1 = [NSArray arrayWithObjects:@1, @'A', @8, @8.99, @(YES), nil]; //    NSLog(@"%@", array1);          //NSArray *array3 = [NSArray arrayWithObjects:@"aaa", @"bbb", @"ccc", nil];     //快捷的方法,创建一个数组 //    NSArray *arra3 = @[@"aaa", @"bbb", @"ccc"]; //    NSLog(@"%@", arra3);          //语法糖(syntactic sugar)     //@ + 数字 : 转成NSNumber     //@[元素1,元素2,元素3,...] : 创建一个数组      //    NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:0]; //    这个是可以比较出来的因为NSNumber中compare返回的是较大的那个值 //    for (int i = 0; i < 10; i++) { //        int temp = arc4random() % 100; //        array[i] = [NSNumber numberWithInt:temp]; //    } //     //    NSLog(@"%@", array); //     //    for (int i = 0; i < [array count] - 1; i++) { //        for (int j = 0; j < [array count] - 1 - i; j++) { //            if ([array[j] compare:array[j + 1]] == NSOrderedDescending) { //                [array exchangeObjectAtIndex:j withObjectAtIndex:j + 1]; //            } //        } //    } //     //    NSLog(@"%@", array);          int array[5] = {9, 1, 2, 3, 4};          BOOL flag = YES;//flag为YES,表示上次排序进行了交换, NO表示上次排序没有做交换     for (int i = 0; i < 5 - 1 && flag; i++) {         flag = NO;//假设本趟循环没有作交换         for (int j = 0; j < 5 - 1 - i; j++) {             if (array[j] > array[j + 1]) {                 int temp = array[j];                 array[j] = array[j + 1];                 array[j + 1] = temp;                 //如果交换,就把flag置为YES                 flag = YES;             }         }     }

     
  • 相关阅读:
    让DateTimePicker显示空时间值
    Microsoft Office ACCESS作为网站数据库的弊端
    存储过程中有临时表生成DataSet会失败
    C# Winform 开源控件
    SQL Server format phone number
    RDLC, canGrow=True, canShrink=False, content are shrinked to the left in Safari.
    C#.net winform skin 皮肤大全devexpress,IrisSkin,DotNetSkin,SkinCrafter
    Inside WCF Runtime
    IOS开发中的几种设计模式介绍
    android ndk gdb 调试
  • 原文地址:https://www.cnblogs.com/tian-sun/p/4309590.html
Copyright © 2011-2022 走看看