==============NSArray(不可变数组)===========

NSArray,继承自NSObject  用来管理(储存)一些有序的对象,不可变数组.

创建一个空数组

NSArray *array1=[[NSArray alloc]init];               //NSArray *array2=[NSArray array];

nil   数组结束标志

NSArray *array3=[[NSArray alloc]initWithObjects:@"rose",@"jack",nil,@"tom",@"jerry",nil];

//    通过下标访问数组中的元素(因为数组中的对象是有序的,下标也是从0开始)

NSString *str=[array4 objectAtIndex:2];      //获取下标为2的数组元素

NSString *str1=[array4 firstObject];         //获取第一个对象(下标就是0)

NSString *str2=[array4 lastObject];            //获取最后一个对象

NSUInteger cou=[array4 count];            //   获取数组中元素的个数

===============NSMutableArray(可变数组)==============

//NSMutableArray  可变数组(空间大小可变)

创建一个可变数组

NSMutableArray *mArray=[[NSMutableArray alloc]initWithCapacity:0];

想数组中添加对象

[mArray addObject:@"天湖"];

NSLog(@"%@",mArray);//打印的是编码,可以通过遍历数组获取元素中的汉字

for (NSUInteger i=0; i<[mArray count];
i++) {

NSLog(@"%@",[mArray objectAtIndex:i]);    //打印的是数组元素

}

---------------------------------------------------------------------

用一个数组为另一个数组添加元素

NSMutableArray *array5=[NSArrayarrayWithObjects:@"1",@"2",@"3",@"4",nil];

NSMutableArray *mArray3=[[NSMutableArray

alloc]initWithCapacity:0];

//    用一个数组为另一个数组添加元素

[mArray3 addObjectsFromArray:array5];

NSLog(@"%@",mArray3);

//在某个位置插入一个元素

[mArray3 insertObject:@"*1*" atIndex:0];

NSLog(@"%@",mArray3);

//删除指定位置的数组元素

[mArray3 removeObjectAtIndex:1];

//直接删除某个元素

[mArray3 removeObject:@"3"];

//   删除最后一个元素

[mArray3 removeLastObject];

//    清空数组

[mArray3 removeAllObjects];

交换数组元素位置

NSMutableArray *mArray4=[NSMutableArrayarrayWithObjects:@"iPhone",@"iPod",@"iwatch",@"iTouch",@"mac",nil];

[mArray4 exchangeObjectAtIndex:1withObjectAtIndex:2];

//遍历数组

//    快速枚举 (增强型for循环)

//    OC中提供快速遍历集合的循环,使用forin遍历数组,不需要关心数组的个数.

//    每一次循环都把当前元素的值赋值给变量,如NSString *str中的str

//    在内部添加NSLog的语句,或者其他的功能语句

for (NSString *strin mArray4) {

NSLog(@"%@",str);

//      [mArray4 removeObjectAtIndex:0];  //error.注意在快速枚举中,不能对数组元素做修改操作,如:删除某个元素

}

//数组排序

NSArray *sortArray=[mArray4 sortedArrayUsingSelector:@selector(compare:)]; //@selector()选择器,()内写方法

for (NSString *strin sortArray) {

NSLog(@"%@",str);

}

==================NSDictionary(不可变字典)=================

//NSDictionary,不可变字典,继承自NSObject

// 字典中存储的元素都是以键值对的形式存在,key值必须是唯一,且不能重复;

//    1.存储的元素都是无序的

//    2.存储的是key/value(键值对)

//    3.字典创建都是以nil结束

//    4.value必须是对象,key一般是字符串

//    注意:创建时,value在前,key在后,字典是无序的.(打印出来是key在前,value在后)

创建字典

NSDictionary *dic=[[NSDictionaryalloc]initWithObjectsAndKeys:@"xiaoming",@"name",

@"18",@"age",

@"man",@"sex",nil];

//    通过key访问value

NSString *str3=[dic
objectForKey:@"age"];

//    获取所有的value值

NSArray *values=[dic
allValues];

//    获取所有的key值

NSArray *keys=[dic allKeys];

//    获取字典中键值对的个数

NSUInteger count=[dic
count];

//遍历字典1

for (NSString *key in dic) {//快速枚举枚举的是字典中的key值

NSLog(@"%@=%@",key,[dicobjectForKey:key]);

}

//遍历字典2

for (NSInteger i=0; i<count; i++) {

NSString *key=[[dic allKeys]objectAtIndex:i];//allKeys先行获取所有key(一个数组),objectAtIndex得到每个key

NSString *value=[dic objectForKey:key];//通过key得到value值

NSLog(@"%@=%@",key,value);

}

//遍历字典3

for (NSString * keyin [dic allKeys])
{

NSLog(@"%@=%@",key,[dic valueForKey:key]);

}

=========================NSMutableDictionary(可变字典)==================

/创建一个可变字典

NSMutableDictionary *mDic=[[NSMutableDictionary alloc]initWithDictionary:0];

//添加

[mDic setObject:@"chengyixun"forKey:@"singer"];

//    修改key对应的value

[mDic setObject:@"zhouzhou""forKey:@"singer"];

//    删除键值对

[mDic removeObjectForKey:@"zhouzhou"];

//清空字典

[mDic removeAllObjects];

====================NSSet集(不可变)============================

//   NSSet  继承自NSObject,不可变集合,类似于数学中的集合

//    1.集合是无序的

//    2.集合中的元素是唯一的(不可重复)

//    空集合 {(   )}

NSSet *set=[[NSSet alloc]init];

NSSet *set1=[NSSet set];

//    可以通过把数组转换为集合来去重

NSArray *a1=[[NSArray alloc]initWithObjects:@"1",@"1",@"1",@"2",nil];

NSSet *set3 = [[NSSet alloc]initWithArray:a1];

NSLog(@"%@",set3);          //     1     2

//访问集合中的元素

NSArray *array10=[set3 anyObject]

//    集合中元素的个数

NSLog(@"%lu",[set3 count])

//    判断某个元素释放存在于集合中

NSSet *set4=[NSSet setWithObjects:@"1",@"2",@"3",@"4",@"5",nil];

BOOL b=[set4 containsObject:@"9"];

//    判断一个集合是否是另一个集合的子集

NSSet *set5=[NSSet setWithObjects:@"1",@"2",@"8",nil];

if ([set5 isSubsetOfSet:set4]) {

NSLog(@"是");

}else{

NSLog(@"不是");

}

//  判断两个集合是否相等

if ([set5 isEqualToSet:set4]) {

NSLog(@"相等");

}else{

NSLog(@"不等");

}

//    判断两个集合是否有交集

if ([set5 intersectsSet:set4]) {

NSLog(@"有交集");

}else{

NSLog(@"无交集");

}

=================NSMutableSet集(不可变)=================

创建一个可变的集

NSMutableSet *mSet=[[NSMutableSet alloc]initWithCapacity:0];

//    添加元素

[mSet addObject:@"macangyou"];

//    删除元素

[mSet removeObject:@"macangyou"];

//    清空集合

[mSet removeAllObjects];

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>总结<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

//    1.NSArray是有序的,NSDictionary和NSSet是无序的

//    2.NSArray通过下标访问,NSDictionary是通过key值来访问元素,NSSet随机访问

//    3.NSArray数组中的元素可以相同,NSDictionary的key必须唯一,NSSet元素唯一

//    4.显示格式

/*

NSArray (元素1,元素2,...)

NSDictionary{key1=value1;key2=value2;....}

NSSet  {(元素1,元素2,...)}

*/

//    注意:NSArray和NSDictionary经常嵌套使用

版权声明:本文为博主原创文章,未经博主允许不得转载。

OC基础:数组.字典.集 分类: ios学习 OC 2015-06-18 18:58 47人阅读 评论(0) 收藏的更多相关文章

  1. shell入门之函数应用 分类: 学习笔记 linux ubuntu 2015-07-10 21:48 77人阅读 评论(0) 收藏

    最近在学习shell编程,文中若有错误的地方还望各位批评指正. 先来看一个简单的求和函数 #!/bin/bash #a test about function f_sum 7 8 function f ...

  2. linux中的网络通信指令 分类: 学习笔记 linux ubuntu 2015-07-06 16:02 134人阅读 评论(0) 收藏

    1.write write命令通信是一对一的通信,即两个人之间的通信,如上图. 效果图 用法:write <用户名> 2.wall wall指令可将信息发送给每位同意接收公众信息的终端机用 ...

  3. linux常用的压缩与解压缩命令 分类: 学习笔记 linux ubuntu 2015-07-05 19:38 38人阅读 评论(0) 收藏

    1.gzip 压缩 gzip 是压缩文件,压缩之后文件后缀为.gz 用法:gzip 选项 [文件] 2.gunzip 解压 这个命令与gzip的功能刚好相反,这个是解压. 用法 gunzip 选项 [ ...

  4. ubuntu14.04使用root用户登录桌面 分类: 学习笔记 linux ubuntu 2015-07-05 10:30 199人阅读 评论(0) 收藏

    ubuntu安装好之后,默认是不能用root用户登录桌面的,只能使用普通用户或者访客登录.怎样开启root用户登录桌面呢? 先用普通用户登录,然后切换到root用户,然后执行如下命令: vi /usr ...

  5. linux中echo的用法 分类: 学习笔记 linux ubuntu 2015-07-14 14:27 21人阅读 评论(0) 收藏

    1.echo命令我们常用的选项有两个,一个是-n,表示输出之后不换行,另外一个是-e,表示对于转义字符按相应的方式处理,如果不加-e那么对于转义字符会按普通字符处理. 2.echo输出时的转义字符 \ ...

  6. shell脚本调试 分类: 学习笔记 linux ubuntu 2015-07-14 12:49 53人阅读 评论(0) 收藏

    1.sh -x script 这将执行脚本并显示所有变量的值 如,脚本: #!/bin/bash #a test about shift if [ $# -le 0 ] then echo " ...

  7. shell入门之流程控制语句 分类: 学习笔记 linux ubuntu 2015-07-10 16:38 89人阅读 评论(0) 收藏

    1.case 脚本: #!/bin/bash #a test about case case $1 in "lenve") echo "input lenve" ...

  8. shell入门之变量测试 分类: 学习笔记 linux ubuntu 2015-07-10 15:49 31人阅读 评论(0) 收藏

    格式:test 测试条件 字符串测试: 注意空格: test str1 == str2 测试字符串是否相等 test str1 != str2 测试字符串是否不相等 test str1 测试字符串是否 ...

  9. shell脚本实现冒泡排序 分类: 学习笔记 linux ubuntu 2015-07-10 14:16 79人阅读 评论(0) 收藏

    手动输入一行字符串,并对其排序. 脚本如下: #!/bin/bash #a test about sort echo "please input a number list" re ...

随机推荐

  1. Hibernate 由实体类与配置文件的配置关系生成数据库中的表

    import org.hibernate.cfg.Configuration; import org.hibernate.tool.hbm2ddl.SchemaExport; public class ...

  2. URAL 1658 Sum of Digits

    URAL 1658 思路: dp+记录路径 状态:dp[i][j]表示s1为i,s2为j的最小位数 初始状态:dp[0][0]=0 状态转移:dp[i][j]=min(dp[i-k][j-k*k]+1 ...

  3. Python map/reduce

    2017-07-31 18:20:59 一.map函数 map():会根据提供的函数对指定序列做映射.第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 ...

  4. Python获取脚本所在目录的正确方法(转)

    1.以前的方法如果是要获得程序运行的当前目录所在位置,那么可以使用os模块的os.getcwd()函数.如果是要获得当前执行的脚本的所在目录位置,那么需要使用sys模块的sys.path[0]变量或者 ...

  5. English trip -- MC(情景课)3 C Do you have a sister?

    xu言:   学了困难的在去看以前的课程,发现真的容易多了.So 学习的最好方法和提速方式,那就是找困难的不断去挑战.尝试.尝试.在尝试! Grmmar ['græmə]  focus  ['fəʊk ...

  6. LeetCode--219--存在重复元素2

    问题描述: 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k. 示例 1: 输入: ...

  7. codeforces 578b//"Or" Game// Codeforces Round #320 (Div. 1)

    题意:n个数字,最多操作k次,每次乘x,要使结果数组的与值最大. 能推断出结果是对一个元素操作k次,并且这个元素的二进制最高位比较大.并不一定是取最大的,比如1100和1010,乘以一次2,两种选法分 ...

  8. 『cs231n』线性分类器损失函数

    代码部分 SVM损失函数 & SoftMax损失函数: 注意一下softmax损失的用法: SVM损失函数: import numpy as np def L_i(x, y, W): ''' ...

  9. asp.net GridView多行表头的实现,合并表头

    protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == Da ...

  10. 072——VUE中vuex之使用mutations修改购物车仓库数据

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...