NSArray和NSMutableArray

#import <Foundation/Foundation.h>
void one()
{
    //创建数组
    NSArray *arr1=[NSArray array];
    NSLog(@"%@",arr1);
    //创建一个只有一个元素的数组
    NSArray *arr2=[NSArray arrayWithObject:@"只有一个元素"];
    //创建一个包含多个元素的数组
    NSArray *arr3=[NSArray arrayWithObjects:@"one",@"two",@"three", nil];
    //用数组可以创建另外一个数组
    NSArray *arr4=[NSArray arrayWithArray:arr3];
    NSLog(@"%@",arr4);
    //用对象方法创建数组
    NSArray *arr5=[[NSArray alloc]initWithObjects:@"1",@"2",@"3",nil];
    //数组的简化形式
    NSArray *[email protected][@"ios",@"iosay"];
    NSLog(@"%@",arr);

    //访问数组
    NSLog(@"%lu",arr3.count);//获取长度[arr count];
    //访问数组某个元素
    NSLog(@"%@",[arr3 objectAtIndex:2]);
    //取元素的下标
    NSLog(@"%lu",[arr3 indexOfObject:@"two"]);
    //是否包含了某个元素
    BOOL loc=[arr3 containsObject:@"ios"];
    if(loc)
    {
        NSLog(@"yes");
    }
    else
    {
        NSLog(@"no");
    }
    //数组的遍历
    //for循环
    for (int i=0; i<arr3.count; i++)
    {
        NSLog(@"%@",arr3[i]);
    }
    //快速枚举法
    for(NSString *temp in arr5)
    {
        NSLog(@"%@",temp);
    }
    //使用block块
    [arr2 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
        NSLog(@"%@",obj);
    }];
}

void two()
{
    //创建一个可变数组
    NSMutableArray *marr1=[NSMutableArray array];
    [marr1 addObject:@"ios"];
    NSLog(@"%@",marr1);
    marr1[1]=@"zhang yu";
    NSLog(@"%@",marr1);
    //创建一个包含多个元素的可变数组
    NSMutableArray *marr2=[NSMutableArray arrayWithObjects:@"1",@"2",@"3", nil];
    NSLog(@"%lu",marr2.count);
    NSLog(@"%@",[marr2 objectAtIndex:1]);
    NSLog(@"%lu",[marr2 indexOfObject:@"3"]);
    BOOL loc=[marr2 containsObject:@"2"];
    if(loc)
    {
        NSLog(@"yes");
    }
    else
    {
        NSLog(@"no");
    }
    //创建一个指定长度的数组
    NSMutableArray *arr=[NSMutableArray arrayWithCapacity:3];
    //扩展
    [arr addObject:@"one"];
    [arr addObject:@"two"];
    [arr addObject:@"three"];
    [arr addObject:@"ios"];
    NSLog(@"%@",arr);
    //删除
    [arr removeObject:@"three"];
    NSLog(@"%@",arr);
}
int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        //NSDictionary快速创建
        NSDictionary *[email protected]{@"zy":@"zhang yu",@"hz":@"he zhi"};
        NSLog(@"%@",dict);
        //长度
        NSLog(@"%lu",[dict count]);
        //访问key和value
        NSLog(@"%@",[dict allKeys]);
        NSLog(@"%@",[dict allValues]);
        //通过键值获取value值
        NSLog(@"%@",[dict valueForKey:@"hz"]);

        //遍历
        for (NSString *key in dict)
        {
            NSLog(@"key=%@  value=%@",key,[dict valueForKey:key]);
        }

        [dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
            NSLog(@"%@---->%@",key,obj);
        }];

        //NSMutableDictionary创建
        NSMutableDictionary *[email protected]{@"nh":@"ni hao",@"xm":@"xiao ming"};
        NSLog(@"%@",mdict);
        ///Volumes/ZHANG YU/sophister/Two/Mac OS/P1/NSArray数组/main.m:122:30: Incompatible pointer types initializing ‘NSMutableDictionary *‘ with an expression of type ‘NSDictionary *‘

    }
    return 0;
}
时间: 2024-12-05 05:11:20

NSArray和NSMutableArray的相关文章

Foundation框架中NSArray和NSMutableArray

=================== NSArray ====================(不可变数组,一旦建立就不能被更改) Ordered collection of objects. Immutable(you cannot add or remove objects to it once it’s created)Important methods:+ (id)arrayWithObjects:(id)firstObject, ...;    // nil terminated -

[Objective-C] 008_Foundation框架之NSArray与NSMutableArray

在Cocoa Foundation中NSArray和NSMutableArray 用于对象有序集合,NSArray和NSMutableArray类最大的区别是:NSArray是不可变,NSMutableArray是可变的.它们只能存储Cocoa对象(NSObject对象),如果想保存一些原始的C数据(如:int,float,double,BOOL等),则需要将这些原始的C数据封装NSNumber类型,它们的下标是从0开始,下面是NSArray和NSMutableArray类的一些常用初级操作.

NSArray与NSMutableArray 数组与可变数组的创建和遍历 复习

1.NSArray 是一个父类,NSMUtableArray是其子类,他们构成了OC的数组. 2.NSArray的创建 NSArray * array = [[NSArray alloc]initWithObjects:@"one",@"two",@"three",@"four good",nil];//用对象初始化一个数组,这里是任意四个对象,不一定是字符串.//OC中的数组,不是真正的数组,这是一个链表,nil的作用正是表

NSArray,NSMutableArray的一些常用方法

不可变数组 --NSArray 常用的初始化一个数组:       NSArray *array1 = [[NSArray alloc] init];       NSArray *array2 = [NSArray array]; //对于上述两个方法,在NSArray中用的很少,因为这是一个空数组,它的值是不可改变的,意味着一旦创建,就永远为空       NSArray *array3 = [NSArray arrayWithObjects:[NSNumber numberWithInt:

Objective-C 下用 NSArray 和 NSMutableArray 定义二维数组跟多维数

Objective-C 下用 NSArray 和 NSMutableArray 定义二维数组跟多维数组 目录 问题描述 Objective-C 中的数组对像 NSArray 和 NSMutableArray 简介 二维数组:嵌套两次的 NSMutableArray 多维数组:嵌套多次的 NSMutableArray 问题描述 说实话,不太习惯面向对象编程,所以在操作 Objective-C 中数组对象时,总是忍不住跟 C 中的数组做比较,正好要建立一个二维数组,需要根据二维数组的下标来做相应的设

OC中的NSArray和NSMutableArray、NSDictionary和NSMutableDictionary用法

一:NSArray 和NSMutableArray 1: NSArray:不可变数组 NSArray是OC中使用的数组,只能用来存放OC对象,不能存放非OC对象如基本数据类型 它使不可变的,一旦初始化完毕,内容不能改变,也不能添加元素. 而C语言中的数组只能存放一种数据类型 (1) 普通数组的用法 // 普通数组的创建 // int arr[5] = {1,3,4}; // 对象数组的创建 // Person *p = [[Person alloc] init]; // Person *arrP

NSArray和NSMutableArray相互转换, 以及常用方法-备

有时候项目中NSArray和NSMutableArray需要相互转化,下面给出相关代码1.NSArray 1.1 转化:NSMutableArray 1 NSMutableArray *mutableArray = [NSMutableArray arrayWithArray:array]; // array为NSMutableArray类型 1.2 常用方法 不可变数组对象: [array count] : 得到这个对象数组的长度. [array objectAtIndex 0]: 传入数组脚

NSArray 和NSMutableArray的区别

1.NSArray 创建的是静态数组,一旦创建之后,就再也不能添加和删除数组中的对象了. NSArray * array; array = [ NSArray arraryWithObjects: @"one", @"two", @"three",nil     ] ; 2.NSMutalbeArray 创建的是动态数组,可随意添加或删除数组中的元素. 在iOS 开发过程中, NSArray,NSMutableArray.NSDictionary

IOS数组NSArray与NSMutableArray知识点

此文是对数组NSArray与NSMutableArray知识点的总结,主要是一些常见的操作,别外一些操作见其相应的文档,下面的代码部分还运用的第三方插件BlocksKit相结合: a:Foundation中数组(NSArray)是有序的对象集合 b:NSArray只能存储Objective-C的对象,而不能存储像int.float这些基本数据类型,但是Objective-C对C兼容,所以在Objective-C程序中,仍然可以使用C的数组来存储基本数据类型 c:NSArray一旦创建便不可以再对

IOS阶段学习第15天笔记(NSArray与NSMutableArray 数组)

IOS学习(OC语言)知识点整理 一.OC中的数组 1)数组:也是一个对象,数组中存放的是对象的地址,可以存放任意类型对象的地址,只能是对象不能是具体的数值,数组是有序的,      可以存放重复的元素,数组也分为不可变数组和可变数组.       1.不可变数组NSArray:初始化之后不能修改数组的内容       2.可变数组NSMutableArray:可以随时修改数组的内容(增加元素.删除元素.修改元素) 二.NSArray数组的操作 1)NSArray数组的创建 1.创建方法一:使用