ios學習筆記(五)陣列和字典
陣列類,可存放OC物件,不可存放int float 的基本資料型別和CGRect這兩種原始資料
陣列中物件的順序是以索引(index)標記的
陣列分為可變陣列和不可變陣列;可變陣列可進行增刪改得操作,不可變陣列不能進行增刪該
不可變陣列:
NSArray *array = [[NSArray alloc]initWithObjects:@"000",@"111",@"222", nil];//其所因分別為0,1,2
//獲取陣列長度
int arrayCount = [array count];
//根據索引取值
NSString *str = [array objectAtIndex:2];
//str 的值為 222
//遍歷陣列,取出陣列中的所有元素
for (int a = 0; a<array.count; a ++) {
NSString *string = [array objectAtIndex:a ];
NSLog(@"---------%@--------",string);
}
//簡單遍歷方式
for (NSString *string2 in array) {
NSLog(@"-----forin形式遍歷------%@",string2);
}
可變陣列:
//初始陣列長度的建立方法,但是新增object時如果超過了這個長度,陣列長度會增加
NSMutableArray *MArry1 = [[NSMutableArray alloc]initWithCapacity:10];
//初始化變數的建立方法
NSMutableArray *MArry2 = [[NSMutableArray alloc]initWithObjects:@"000",@"111",@"222", nil];
//增加元素單個元素
[MArry1 addObject:@"333"];
[MArry2 addObject:@"444"];
//刪除陣列內所有物件
[MArry1 removeAllObjects];
//刪除最後一個物件
[MArry2 removeLastObject];
//刪除指定物件
[MArry2 removeObject:@"111"];
//根據索引刪除物件
[MArry2 removeObjectAtIndex:0];
//在制定索引處插入物件
[MArry2 insertObject:@"555" atIndex:1];
//制定索引的物件替換
[MArry2 replaceObjectAtIndex:1 withObject:@"666"];
//根據索引交換兩個物件的位置
[MArry2 exchangeObjectAtIndex:0 withObjectAtIndex:1];
//使用迴圈新增多個物件
for (int i = 0; i < 10; i ++) {
NSString *string = [NSString stringWithFormat:@"--%d--",i];
[MArry1 addObject:string];
}
//遍歷操作與不可變陣列相同
字典分為可變字典和不可變字典,區別:是否可以進行增刪改操作
與陣列相比,字典主要的特點是,字典根據自己新增的鍵(key)來查詢值(value),而不是按系統定義的索引(index)
不可變字典
//建立字典
NSDictionary *dic = [[NSDictionary alloc]initWithObjectsAndKeys:@"value0",@"key0",@"value1",@"value1",@"value2",@"value2", nil];
//查詢字典中鍵值對的個數
int count = [dic count];
//查詢所有的鍵
NSArray *arrayForAllKeys = [dic allKeys];
//查詢所有的值
NSArray *arrayForAllValues = [dic allValues];
//根據key查詢對應的value
NSString *string = [dic objectForKey:@"key2"];
//迴圈遍歷
for (int i = 0; i <arrayForAllKeys.count; i ++) {
//獲取key
NSString *stringKey = [arrayForAllKeys objectAtIndex:i];
//獲取key對應的Value
NSString *stringValue = [dic objectForKey:stringKey];
NSLog(@"-------%@",stringValue);
}
//陣列中存放int float
int a = 1;
float b = 2.5;
NSNumber *aa = [NSNumber numberWithInt:a];
NSNumber *bb = [NSNumber numberWithFloat:b];
NSArray *array = [NSArray arrayWithObjects:aa,bb, nil];
//以加號方法的形式建立
NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys:@"value0",@"key0",@"value1",@"value1",@"value2",@"value2", nil];
可變字典
//建立可變字典
NSMutableDictionary *MDic = [NSMutableDictionary dictionary];
//可變字典也可以初始化鍵值對建立
NSMutableDictionary *MDic1 = [[NSMutableDictionary alloc]initWithObjectsAndKeys:@"value0",@"key0",@"value1",@"value1",@"value2",@"value2", nil];
//向字典中增加鍵值對時,若字典中該key不存在,則新增;若字典中該key已存在,則修改對應的value
[MDic setValue:@"value" forKey:@"key0"];//增加
[MDic1 setObject:@"value" forKey:@"key0"];//修改
//刪除指定key對應的鍵值對
[MDic1 removeObjectForKey:@"key2"];
//刪除所有的鍵值對
[MDic1 removeAllObjects];
//查詢遍歷操作同不可變字典
//使用NSLog輸出時,字典使用{}包圍內容,陣列使用()包圍內容