int main(int argc, const char * argv[])
{
@autoreleasepool {
// 把字符串放入可变数组与不可变数组内
NSString *str1 = @"孙悟空";
NSString *str2 = @"猪八戒";
NSString *str3 = @"沙僧";
NSArray *array =[[NSArray alloc]initWithObjects:str1,str2,str3, nil] ;
NSLog(@"不可变数组:");
for (NSString *str in array) {
NSLog(@"%@",str) ;
}
NSMutableArray *mArray = [NSMutableArray new] ;
[mArray addObject:str1] ;
[mArray addObject:str2] ;
[mArray addObject:str3] ;
NSLog(@"可变数组:") ;
//遍历数组的3种方法1 索引遍历 2 获取枚举器 3 快速枚举
NSLog(@"索引遍历的结果是:");
for (NSString *str in mArray) {
NSLog(@"%@",str) ;
}
NSEnumerator *enumerator = [mArray objectEnumerator] ;
id obj ;
NSLog(@"枚举遍历的结果是");
while(obj=[enumerator nextObject])
{
NSLog(@"%@",obj) ;
}
NSLog(@"快速遍历的结果是");
for(obj in mArray)
{
NSLog(@"%@",obj);
}
[mArray removeObject:str1] ;
for (NSString *str in mArray) {
NSLog(@"%@",str) ;
}
//删除数组中的最后一个对象
[mArray removeLastObject] ;
NSLog(@"删除数组内最后一个对象后结果是:") ;
[mArray removeObject:str1] ;
for (NSString *str in mArray) {
NSLog(@"%@",str) ;
}
//删除指定索引的对象
// [mArray removeObjectsAtIndexes:<#(NSIndexSet *)#>] ;
//对可变数组内的元素进行替换
[mArray replaceObjectAtIndex:0 withObject:@"过春节"];
NSLog(@"替换后的结果是");
[mArray removeObject:str1] ;
for (NSString *str in mArray) {
NSLog(@"%@",str) ;
}
}
// 把int型的变量放入数组,然后在从数组内取出,打印出int型的变量
int a = 10 ;
int b = 12 ;
NSNumber *number1 = [NSNumber numberWithInt:a] ;
NSNumber *number2 = [NSNumber numberWithInt:b] ;
NSArray *array1 = [NSArray arrayWithObjects:number1,number2, nil] ;
for(NSNumber *num in array1)
{
NSLog(@"%d",[num intValue]) ;
}
//下面是字典的一些简介
//数组和字典一样里面村饭的元素都要是度一项类型的才行
//字典和数组不同的是:它采用的键差挨训的优化存储方式,可以通过关键字立刻找出要查的数据,而不用遍历整个集合去找
//dictionaryWithObjectsAndKeys是成对出现的 ,都是对象和值
//字典的关键字和值都是id类型的
//字典的关键字不要重复,如果重复了,后面的值就会覆盖前面的值
//字典的一些删除 替换等方法和数组是一样的
NSDictionary *dic =[[NSDictionary alloc]initWithObjectsAndKeys:@"孙悟空",@"大师兄是:",@"猪八戒",@"二师兄是:",@"沙僧",@"三师兄是:", nil] ;
NSArray *array2 = [dic allKeys] ;
for (id key in array2) {
id value = [dic valueForKey:key] ;
NSLog(@"%@%@",key,value) ;
}
//可变字典里添加对象
NSMutableDictionary *mdic = [NSMutableDictionary dictionaryWithCapacity:5] ;
[mdic setObject:@"孙悟空" forKey:@"大师兄"];
[mdic setObject:@"猪八戒" forKey:@"二师兄"] ;
[mdic setObject:@"沙僧" forKey:@"三师兄"];
NSArray *keys = [mdic allKeys] ;
id key,value ;
for (key in keys) {
value = [mdic objectForKey:key] ;
NSLog(@"key = %@,value = %@",key,value) ;
}
// 1 NSSet:NSSet也是一中集合,他和数组,字典一样只能存储对象类型的数据,如果要存储c语言基本类型的话,就先把他们封装成对象再放进集合里。2 NSSet集合不能存放相同的元素,它里面的元素是互不相同的,而且元素都是无序存放的,属于散列存放 3 在搜索一个元素时 NSSet比NSArray效率高,主要是它用到了哈希算法,比如你要存储元素A,哈希算法直接就能找到A所在的位置,而对于NSSArray要想知道A在不在数组里,需要遍历整个数组,显然效率低了。
return 0;
}