Object-C陣列和字典
// 陣列 (NSArray)
// 系統提供的陣列類 -- 類似於c語言中的陣列
// OC中的陣列是個大容器,可以存放不同型別的物件, 且只能儲存物件(基本資料型別不可存)
// OC陣列提供兩類陣列 NSArray(不可變陣列) NSMUatableArray (可變陣列)
// 可變與不可變區別:
// 可變意味著對原有的物件進行曾刪改操作, 而不可變就意味著陣列一經建立不能修改
// 1. 建立物件
#if 0
// 1). 初始化方法
NSArray *array = [[NSArray alloc] initWithObjects:@"aaa", @"bbb", @"ccc", nil];
NSLog(@"%@", array);
NSArray *array1 = [[NSArray alloc] initWithArray:array];
NSLog(@"%@", array1);
// 2). 便利方法
NSArray *arr = [[NSArray alloc] initWithObjects:@"sdfg", @"gfg", @"fsf", nil];
NSArray *arr1 = [NSArray arrayWithArray:arr];
NSArray *arr2 = [[NSArray alloc] initWithArray:arr1];
// 初始化一個元素
NSArray *arr3 = [NSArray arrayWithObject:@"123"];
NSArray *array3 = [NSArray arrayWithObjects:@"aa", @"bb", @"cc", nil];
NSLog(@"%@", array3);
NSArray *array4 = [NSArray arrayWithArray:array1];
NSLog(@"%@", array4);
// 3). 字面量(用於不可變得量)
NSArray *array6 = @[@"1", @"2", @"3"];
// 2. 獲取陣列元素個數
NSLog(@"%lu", array.count);
// 3. 獲取陣列中的元素
// 1). 給定位置獲取元素
NSLog(@"%@", [array objectAtIndex:2]);
//6 NSLog(@"%@", [array objectAtIndexedSubscript:2]);
// 2). 第一個元素
NSLog(@"%@", array.firstObject);
// 3). 最後一個元素
NSLog(@"%@", [array lastObject]);
// 4. 根據元素獲取元素所在陣列中對應的索引(下標)
NSLog(@"%ld", [array indexOfObject:@"ccc"]);
// 5. 判斷陣列中是否包含某一個給定物件
NSLog(@"%d", [array containsObject:@"aaa"]);
// 6. NSArray與NSString的轉換方法
// NSString->NSArray
NSString *string1 = @"www.asdfdsf.com";
NSArray *array5 = [string1 componentsSeparatedByString:@"."];
NSLog(@"%@", array5);
// NSArray -> NSString
NSString *string2 = [array5 componentsJoinedByString:@"."];
NSLog(@"%@", string2);
NSString *str4 = @"我喜歡你";
NSArray *arr4 = [str4 componentsSeparatedByString:@""];
NSLog(@"%@", arr4);
NSString *str5 = [arr4 componentsJoinedByString:@""];
NSLog(@"%@", str5);
#endif
// 可變字元陣列
// 1. 初始化方法
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"abc", @"def", nil];
NSLog(@"%@", array);
NSMutableArray *array1 = [[NSMutableArray alloc] initWithArray:array];
NSLog(@"%@", array1);
// 2.便利構造器
NSMutableArray *array2 = [NSMutableArray arrayWithObjects:@"123", @"456", nil];
NSMutableArray *array3 = [NSMutableArray arrayWithArray:array2];
NSLog(@"%@", array3);
// 與父類相同初始化
// 4.新增元素
[array2 addObject:@"789"];// 直接新增一個元素
NSLog(@"%@", array2);
[array1 addObjectsFromArray:array1];// 新增陣列
NSLog(@"%@", array1);
// 5.刪除元素
[array removeObject:@"abc"];// 刪除指定元素
NSLog(@"%@", array);
[array removeAllObjects];// 刪除所有元素
NSLog(@"%@", array);
// 6. 插入元素
NSLog(@"%@", array1);
[array1 insertObject:@"bnm" atIndex:1];
NSLog(@"%@", array1);
// 7. 交換指定位置的兩個元素
[array2 exchangeObjectAtIndex:0 withObjectAtIndex:2];
NSLog(@"%@", array2);
// 8.替換元素
[array3 replaceObjectAtIndex:1 withObject:@"333"];
NSLog(@"%@", array3);
// 練習題
#if 1
Person *p1 = [[Person alloc] initWithName:@"1" withAge:10];
Person *p2 = [[Person alloc] initWithName:@"2" withAge:11];
Person *p3 = [[Person alloc] initWithName:@"3" withAge:12];
// 建立小組
// 建立空陣列
//NSMutableArray *group = [NSMutableArray array];
NSMutableArray *group = [NSMutableArray arrayWithObjects:p1, p2, p3, nil];
// 新增一個成員
Person *p4 = [[Person alloc] initWithName:@"4" withAge:19];
[group addObject:p4];
NSLog(@"%@", group);
//
// [group removeObject:p1];
// [group removeObject:p2];
NSLog(@"%@", group);
相關文章
- iOS 字典轉陣列,陣列轉字典iOS陣列
- Swift - 陣列、字典、集合Swift陣列
- 雙陣列字典樹(Double Array Trie)陣列
- AC自動機+字典序+樹狀陣列陣列
- 矩陣和陣列矩陣陣列
- Javascript - 陣列和陣列的方法JavaScript陣列
- 指標陣列和陣列指標與二維陣列指標陣列
- 陣列和字串陣列字串
- 陣列去重和陣列扁平化陣列
- 二維陣列和稀疏陣列互轉陣列
- 陣列--移除陣列中指定的元素,不改變原陣列和改變原陣列陣列
- 【Java】int[] 陣列 和 Integer陣列的轉換Java陣列
- 求二維陣列中最大子陣列的和陣列
- JS陣列遍歷和獲取陣列最值JS陣列
- JavaScript中對陣列和陣列API的認識JavaScript陣列API
- Java陣列宣告建立和使用以及多維陣列、Arrays類、稀疏陣列Java陣列
- 第四章:多維陣列和矩陣 ------------- 4.7 子陣列最大累加和陣列矩陣
- PHP陣列學習之計算陣列元素總和PHP陣列
- Java 學習筆記 二維陣列和物件陣列Java筆記陣列物件
- Go中陣列和切片Go陣列
- C陣列和指標陣列指標
- 陣列和連結串列陣列
- (二)golang陣列和切片Golang陣列
- 陣列去重和求和陣列
- 資料結構之陣列和矩陣--矩陣&不規則二維陣列資料結構陣列矩陣
- KVO監聽容器類(陣列,字典等)屬性的兩種方法陣列
- 【淺出 PHP】陣列相加和陣列合並的區別PHP陣列
- JavaSE 陣列:一維陣列&二維陣列Java陣列
- Java break、continue 詳解與陣列深入解析:單維陣列和多維陣列詳細教程Java陣列
- Golang 學習——陣列指標和指標陣列的區別Golang陣列指標
- leetcode 3366. 最小陣列和LeetCode陣列
- 53. 最大子陣列和陣列
- List 和 陣列 的轉換陣列
- 和為 K 的子陣列陣列
- 樹狀陣列和逆序對陣列
- 字串和陣列常用方法整理字串陣列
- 陣列的去重和排序陣列排序
- js陣列排序和打亂JS陣列排序
- JS 複製陣列和物件JS陣列物件