//
// main.m
// NoteOc-03-数组
//
// Created by 刘佳斌 on 15/11/19.
// Copyright © 2015年 刘佳斌. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Hero.h" //import 导入<声明文件>,可以使用里面所有内容
//@class 提示<类名>,只是类名跟文件没有关系,只可以使用类名
/*
数组: NSArray
初始化数组对象
1.直接赋值: NSArray *array = @[@"数组元素",@"数组元素",@"数组元素"];
数组里面可以盛放任何object类型的数据(基本类型不属于object)
2.类似字符串 alloc init进行初始化
NSArray *list = [[NSArray alloc]init];
NSArray *list1 = [NSArray array];
*/
int main(int argc, const char * argv[]) {
@autoreleasepool {
/* ‼️直接赋值
Hero *wuKong = [[Hero alloc]init];
Hero *baJie = [[Hero alloc]init];
NSArray *list = @[wuKong,baJie];
// NSArray *list = @[@"wuKong",@"baJie"];❌
//此时禁止把字符串当做对象保存
--------------分隔符---------------
NSArray *list = [[NSArray alloc]init]; //初始化空数组
//允许直接给数组赋值
NSArray *list1 = [NSArray array];
*/
// --------------分隔符---------------
/*初始化并赋值
1.初始化只有一个元素的数组
NSArray *list = [NSArray arrayWithObject:@""]; //只有一个元素
2.初始化多个元素的数组
NSArray *list = [NSArray arrayWithObjects:@"",@"", nil]; //nil 不可省略 最后一个元素的逗号也不可省略
*/
// --------------分隔符---------------
/*
数组取值:下标(索引)
取值: 数组的下标是从0开始的
获得数组元素个数的属性:count; 使用方法是 数组名.count
取值方式: 数组名[下标]; 或者objectAtIndex
*/
// NSArray *list = @[@"今",@"天",@"星",@"期",@"四"];
/*
for (int i=0; i<list.count; i++) {
NSString *string = list[i];
NSLog(@"%@",string);
}
*/
//快速遍历:
/*
for(元素类名 *对象名 in 数组名){
对象名 是取出来的元素
}
for (NSString *string in list) {
NSLog(@"%@",string);
}
*/
/*
Hero *h1 = [[Hero alloc]init];
[h1 setName:@"悟空"];
Hero *h2 = [[Hero alloc]init];
[h2 setName:@"八戒"];
NSArray *list =@[h1,h2];
for (Hero *h in list) {
NSLog(@"%@",h.getName);
}
*/
/*
NSArray *list = @[@"lucy",@"lily",@"lilei",@"hanmeimei"];
NSLog(@"%@",list); //数组元素是用 , 隔开的(用 , 隔开的就是数组)
执行后结果
(
lucy,
lily,
lilei,
hanmeimei
)
Hero *h1 = [[Hero alloc]init];
Hero *h2 = [[Hero alloc]init];
NSArray *list1 = @[h1,h2];
NSLog(@"%@",list1);
*/
// --------------分隔符---------------
// 数组取值
/*
NSArray *list = @[@"lucy",@"lily",@"lilei",@"hanmeimei"];
//通过方法去取值 (objectAtIndex)
//NSString *s = [list objectAtIndex:0];
for (int i = 0;i<list.count;i++ ) {
NSLog(@"%@",[list objectAtIndex:i]);
//等同于NSLog(@"%@",list[i]);
}
*/
// --------------分隔符---------------
/*
//字符串可以直接通过一个符号截取字符串变成数组 (componentsSeparatedByString)
NSString *content = @"葫芦娃,小明,老王,大黄";
NSArray *list = [content componentsSeparatedByString:@","]; //@""内也可写文字,会被过滤掉,区分中英文符号(所占字节不同)
for (NSString *string in list) {
NSLog(@"%@",string);
}
*/
// --------------分隔符---------------
//数组转字符串
/*
NSArray *list = @[@"小明",@"小红",@"小米"];
// NSString *string = [NSString stringWithFormat:@"%@",list];❌
// NSLog(@"%@",string); //这种方法不提倡 会将原数组中的不需要的字符也转过来
//直接把数组格式化字符串,数组会保持原始形态,可以使用componentsJoinedByString加入一个字符串去分割数组里面的元素
NSString *s = [list componentsJoinedByString:@"-"];
NSLog(@"%@",s);
*/
// --------------分隔符---------------
//可变数组 不可以直接给可变数组赋值
// NSMutableArray *list = @[]; ❌
// [NSMutableArray arrayWithArray:@[@"",@"",@""]];
// //不可变数组里面所有的方法可变数组都可以使用
// NSMutableArray *list = [NSMutableArray arrayWithObjects:@"",@"", nil];
// --------------分隔符---------------
// 可变数组的 增删改
// NSMutableArray *list = [NSMutableArray array]; 定义
//添加 addObject 添加一个object类型数据
// Hero *hero = [[Hero alloc]init];
// [list addObject:hero];
// NSLog(@"%lu",list.count); 添加
/*
//alloc init只会创建一个对象,有一次alloc init 就会创建一个对象
for (int i=0; i<10; i++) {
Hero *hero = [[Hero alloc]init];
[list addObject:hero];
}
NSLog(@"%@",list);
*/
// --------------分隔符---------------
//删除元素 removeObjectAtIndex (按照下标) removeObjectsInRange(按范围) removeLastObject(删最后) removeAllObjects(删全部)
// NSMutableArray *list = [NSMutableArray arrayWithObjects:@"lucy",@"hanmeimei",@"tom", nil];
// [list removeObjectAtIndex:1]; (按照下标)
// NSRange range = {0,2}; (按范围)
// [list removeObjectsInRange:range];
// [list removeLastObject ]; (删最后)
// [list removeAllObjects]; (删全部)
// NSLog(@"%@",list);
// --------------分隔符---------------
//替换元素
// NSMutableArray *list = [NSMutableArray arrayWithObjects:@"lucy",@"hanmeimei",@"tom", nil];
// [list replaceObjectAtIndex:1 withObject:@"xiaoyang"];
// NSLog(@"%@",list);
//通过元素查找元素下标
NSMutableArray *list = [NSMutableArray arrayWithObjects:@"lucy",@"tom",@"hanmeimei", nil];
NSString *name = @"tom";
NSUInteger i = [list indexOfObject:name];
NSLog(@"%lu",i);
// 回顾:
// 1、不可变数组
/*
数组的初始化
(1)NSArray *list = @[@"",@""];
(2)NSArray *list = [[NSArray alloc]init];
(3)NSArray *list = [NSArray array];
初始化并赋值
(1)只赋一个值NSArray *list = [NSArray arrayWithObject:@""];
(2)初始化 并赋多个值 NSArray *list = [NSArray arrayWithObjects:@"",@"", nil];
注意:最后一个元素的逗号 和 nil 不能省略
*/
/*
数组取值
(1)list[0];
(2)[list objectAtIndex:0];
*/
/*
快速遍历
for (元素 in 数组) {
}
*/
/*
数组转字符串
(1)直接格式化[NSString stringWithFormat:@"%@",list];
(2)加入一个字符串去分割数组 [list componentsJoinedByString:@""];
*/
/*
把字符串转成数组
通过一个标记 把字符串分割成数组
NSString *ss =@"qqqq11www11eee";
[ss componentsSeparatedByString:@"11"];
*/
/*
可变数组
增删改查
(1)添加[list addObject:@""];
(2)直接删除一个元素:[list removeObject:@""];
通过下标删除元素:[list removeObjectAtIndex:0];
删除最后一个元素:[list removeLastObject];
删除全部元素:[list removeAllObjects];
替换元素:
通过下标 替换下标对应的元素:[list replaceObjectAtIndex:0 withObject:@""];
查找元素:
(1)通过下标:list[0];
(2)通过内容查找:[list indexOfObject:@""];
*/
}
return 0;
}
// main.m
// NoteOc-03-数组
//
// Created by 刘佳斌 on 15/11/19.
// Copyright © 2015年 刘佳斌. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Hero.h" //import 导入<声明文件>,可以使用里面所有内容
//@class 提示<类名>,只是类名跟文件没有关系,只可以使用类名
/*
数组: NSArray
初始化数组对象
1.直接赋值: NSArray *array = @[@"数组元素",@"数组元素",@"数组元素"];
数组里面可以盛放任何object类型的数据(基本类型不属于object)
2.类似字符串 alloc init进行初始化
NSArray *list = [[NSArray alloc]init];
NSArray *list1 = [NSArray array];
*/
int main(int argc, const char * argv[]) {
@autoreleasepool {
/* ‼️直接赋值
Hero *wuKong = [[Hero alloc]init];
Hero *baJie = [[Hero alloc]init];
NSArray *list = @[wuKong,baJie];
// NSArray *list = @[@"wuKong",@"baJie"];❌
//此时禁止把字符串当做对象保存
--------------分隔符---------------
NSArray *list = [[NSArray alloc]init]; //初始化空数组
//允许直接给数组赋值
NSArray *list1 = [NSArray array];
*/
// --------------分隔符---------------
/*初始化并赋值
1.初始化只有一个元素的数组
NSArray *list = [NSArray arrayWithObject:@""]; //只有一个元素
2.初始化多个元素的数组
NSArray *list = [NSArray arrayWithObjects:@"",@"", nil]; //nil 不可省略 最后一个元素的逗号也不可省略
*/
// --------------分隔符---------------
/*
数组取值:下标(索引)
取值: 数组的下标是从0开始的
获得数组元素个数的属性:count; 使用方法是 数组名.count
取值方式: 数组名[下标]; 或者objectAtIndex
*/
// NSArray *list = @[@"今",@"天",@"星",@"期",@"四"];
/*
for (int i=0; i<list.count; i++) {
NSString *string = list[i];
NSLog(@"%@",string);
}
*/
//快速遍历:
/*
for(元素类名 *对象名 in 数组名){
对象名 是取出来的元素
}
for (NSString *string in list) {
NSLog(@"%@",string);
}
*/
/*
Hero *h1 = [[Hero alloc]init];
[h1 setName:@"悟空"];
Hero *h2 = [[Hero alloc]init];
[h2 setName:@"八戒"];
NSArray *list =@[h1,h2];
for (Hero *h in list) {
NSLog(@"%@",h.getName);
}
*/
/*
NSArray *list = @[@"lucy",@"lily",@"lilei",@"hanmeimei"];
NSLog(@"%@",list); //数组元素是用 , 隔开的(用 , 隔开的就是数组)
执行后结果
(
lucy,
lily,
lilei,
hanmeimei
)
Hero *h1 = [[Hero alloc]init];
Hero *h2 = [[Hero alloc]init];
NSArray *list1 = @[h1,h2];
NSLog(@"%@",list1);
*/
// --------------分隔符---------------
// 数组取值
/*
NSArray *list = @[@"lucy",@"lily",@"lilei",@"hanmeimei"];
//通过方法去取值 (objectAtIndex)
//NSString *s = [list objectAtIndex:0];
for (int i = 0;i<list.count;i++ ) {
NSLog(@"%@",[list objectAtIndex:i]);
//等同于NSLog(@"%@",list[i]);
}
*/
// --------------分隔符---------------
/*
//字符串可以直接通过一个符号截取字符串变成数组 (componentsSeparatedByString)
NSString *content = @"葫芦娃,小明,老王,大黄";
NSArray *list = [content componentsSeparatedByString:@","]; //@""内也可写文字,会被过滤掉,区分中英文符号(所占字节不同)
for (NSString *string in list) {
NSLog(@"%@",string);
}
*/
// --------------分隔符---------------
//数组转字符串
/*
NSArray *list = @[@"小明",@"小红",@"小米"];
// NSString *string = [NSString stringWithFormat:@"%@",list];❌
// NSLog(@"%@",string); //这种方法不提倡 会将原数组中的不需要的字符也转过来
//直接把数组格式化字符串,数组会保持原始形态,可以使用componentsJoinedByString加入一个字符串去分割数组里面的元素
NSString *s = [list componentsJoinedByString:@"-"];
NSLog(@"%@",s);
*/
// --------------分隔符---------------
//可变数组 不可以直接给可变数组赋值
// NSMutableArray *list = @[]; ❌
// [NSMutableArray arrayWithArray:@[@"",@"",@""]];
// //不可变数组里面所有的方法可变数组都可以使用
// NSMutableArray *list = [NSMutableArray arrayWithObjects:@"",@"", nil];
// --------------分隔符---------------
// 可变数组的 增删改
// NSMutableArray *list = [NSMutableArray array]; 定义
//添加 addObject 添加一个object类型数据
// Hero *hero = [[Hero alloc]init];
// [list addObject:hero];
// NSLog(@"%lu",list.count); 添加
/*
//alloc init只会创建一个对象,有一次alloc init 就会创建一个对象
for (int i=0; i<10; i++) {
Hero *hero = [[Hero alloc]init];
[list addObject:hero];
}
NSLog(@"%@",list);
*/
// --------------分隔符---------------
//删除元素 removeObjectAtIndex (按照下标) removeObjectsInRange(按范围) removeLastObject(删最后) removeAllObjects(删全部)
// NSMutableArray *list = [NSMutableArray arrayWithObjects:@"lucy",@"hanmeimei",@"tom", nil];
// [list removeObjectAtIndex:1]; (按照下标)
// NSRange range = {0,2}; (按范围)
// [list removeObjectsInRange:range];
// [list removeLastObject ]; (删最后)
// [list removeAllObjects]; (删全部)
// NSLog(@"%@",list);
// --------------分隔符---------------
//替换元素
// NSMutableArray *list = [NSMutableArray arrayWithObjects:@"lucy",@"hanmeimei",@"tom", nil];
// [list replaceObjectAtIndex:1 withObject:@"xiaoyang"];
// NSLog(@"%@",list);
//通过元素查找元素下标
NSMutableArray *list = [NSMutableArray arrayWithObjects:@"lucy",@"tom",@"hanmeimei", nil];
NSString *name = @"tom";
NSUInteger i = [list indexOfObject:name];
NSLog(@"%lu",i);
// 回顾:
// 1、不可变数组
/*
数组的初始化
(1)NSArray *list = @[@"",@""];
(2)NSArray *list = [[NSArray alloc]init];
(3)NSArray *list = [NSArray array];
初始化并赋值
(1)只赋一个值NSArray *list = [NSArray arrayWithObject:@""];
(2)初始化 并赋多个值 NSArray *list = [NSArray arrayWithObjects:@"",@"", nil];
注意:最后一个元素的逗号 和 nil 不能省略
*/
/*
数组取值
(1)list[0];
(2)[list objectAtIndex:0];
*/
/*
快速遍历
for (元素 in 数组) {
}
*/
/*
数组转字符串
(1)直接格式化[NSString stringWithFormat:@"%@",list];
(2)加入一个字符串去分割数组 [list componentsJoinedByString:@""];
*/
/*
把字符串转成数组
通过一个标记 把字符串分割成数组
NSString *ss =@"qqqq11www11eee";
[ss componentsSeparatedByString:@"11"];
*/
/*
可变数组
增删改查
(1)添加[list addObject:@""];
(2)直接删除一个元素:[list removeObject:@""];
通过下标删除元素:[list removeObjectAtIndex:0];
删除最后一个元素:[list removeLastObject];
删除全部元素:[list removeAllObjects];
替换元素:
通过下标 替换下标对应的元素:[list replaceObjectAtIndex:0 withObject:@""];
查找元素:
(1)通过下标:list[0];
(2)通过内容查找:[list indexOfObject:@""];
*/
}
return 0;
}