• 数组与字典


     

    #import <Foundation/Foundation.h>

     

    int main(int argc, const char * argv[]) {

        @autoreleasepool {

            //利用i值遍历数组

            NSArray *array = [NSArray arrayWithObjects:@"one",@"two",@"three",@"four",@"five", nil];

            //NSLog(@"array = %@", array);

    #if 0

            NSInteger len = [array count];

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

                NSLog(@"%@", [array objectAtIndex:i]);

            }

    #endif

    #if 0

            //枚举器遍历数组

            //正序枚举数组

            NSEnumerator  *enum1 = nil;

            enum1 = [array objectEnumerator];

            id obj = nil;//obj对象指针必须定义在循环外面

            while (obj = [enum1 nextObject]) {

                NSLog(@"%@", obj);

            }

            //倒序枚举数组

            NSEnumerator *enum2 = [array reverseObjectEnumerator];

            id obj2 = nil;

            while (obj2 = [enum2 nextObject]) {

                NSLog(@"%@", obj2);

            }

    #endif

            //快速枚举法遍历数组

            for (id obj in array) {

                NSLog(@"%@", obj);

            }

        

        }

        return 0;

    }

     

    #import <Foundation/Foundation.h>

     

    int main(int argc, const char * argv[]) {

        @autoreleasepool {

            NSArray *array = @[@"one",@"two",@"three",@"four",@"five",@"six",@"seven"];

    //        array = [array sortedArrayUsingSelector:@selector(compare:)];

    //        NSLog(@"array = %@", array);

            NSMutableArray *mulArray = [NSMutableArray arrayWithArray:array];

            array = [mulArray sortedArrayUsingSelector:@selector(compare:)];

            NSLog(@"array = %@", array);

        }

        return 0;

    }

     

    #import <Foundation/Foundation.h>

    //NSDictionary

    //创建不可变字典

    //字典对象中的没有元素都是一个键值对

    //key : vlaue

    //key 与 vlaue可以为任意类型的对象

    //通常 key 用字符串类的对象表示

     

    int main(int argc, const char * argv[]) {

        @autoreleasepool {

            //xcode 4.6之后

            //创建字典对象

            NSDictionary *dict = @{@"one":@"1",@"two":@"2",@"three":@"3",@"four":@"4"};

            NSLog(@"dict = %@", dict);

            //- (instancetype)initWithObjectsAndKeys:(id)firstObject...

            NSDictionary *dict1 = [NSDictionary dictionaryWithObjectsAndKeys:@"1",@"one",@"2",@"two",@"3",@"three", nil];

            NSLog(@"dict1 = %@", dict1);

            

            //用传入字典对象创建一个新的字典对象

            //- (instancetype)initWithDictionary:(NSDictionary *)otherDictionary;

            NSDictionary *dict2 = [NSDictionary dictionaryWithDictionary:dict1];

            NSLog(@"dict2 = %@", dict2);

            //用value的数组及key的数组创建字典对象

            //- (instancetype)initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys;

            NSArray *values = @[@"1",@"2",@"3",@"4"];

            NSArray *keys = @[@"one",@"two",@"three",@"four"];

            NSDictionary *dict3 = [NSDictionary dictionaryWithObjects:values forKeys:keys];

            NSLog(@"dict3 = %@", dict3);

            

            //字典的其它操作方法

            

            //获取字典对象键值对个数

            NSInteger cnt = [dict count];

            NSLog(@"cnt = %ld", cnt);

            

            //通过key获取对应的值

            id obj = [dict objectForKey:@"three"];

            NSLog(@"obj = %@", obj);

            //获取字典中所有的key

            NSArray *allKeys = [dict allKeys];

            NSLog(@"allKeys = %@", allKeys);

            

            //通过值找到该值对应的所有的key

            NSDictionary *dict4 = @{@"one":@"1", @"two":@"1",@"three":@"3",@"four":@"3"};

            NSArray *keys1 = [dict4 allKeysForObject:@"1"];

            NSLog(@"keys1 = %@", keys1);

            

            //获取所有的值

            NSArray *values1 = [dict4 allValues];

            NSLog(@"values1 = %@", values1);

            //判断两个字典是否相等

            BOOL ret = [dict isEqualToDictionary:dict4];

            NSLog(@"ret = %d", ret);

            

            //字典遍历

            //i值遍历

            NSInteger len = [dict count];

            NSArray *keys2 = [dict allKeys];

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

                NSLog(@"key = %@ value = %@", [keys2 objectAtIndex:i], [dict objectForKey:[keys2 objectAtIndex:i]]);

            }

            

            //枚举器法

            NSEnumerator *keyEnum = [dict keyEnumerator];

            id keyObj = nil;

            while (keyObj = [keyEnum nextObject]) {

                NSLog(@"%@:%@",keyObj,[dict objectForKey:keyObj]);

            }

            //枚举值

            NSEnumerator *valueEnum = [dict objectEnumerator];

            id valueObj = nil;

            while (valueObj = [valueEnum nextObject]) {

                NSLog(@"%@", valueObj);

            }

            //快速枚举法

            //枚举的是key而不是value, 但是可以通过key查找对应的值

            for (id keyObj in dict) {

                NSLog(@"%@:%@", keyObj,[dict objectForKey:keyObj]);

            }

        }

        return 0;

    }

     

    #import <Foundation/Foundation.h>

    //NSMutableDictionary

    //创建可变字典对象

    //继承与NSDictionary

     

    int main(int argc, const char * argv[]) {

        @autoreleasepool {

            //创建一个空的字典对象

            NSMutableDictionary *dict = [NSMutableDictionary dictionary];

            NSMutableDictionary *mulDict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"1",@"one",@"2",@"two",@"3",@"three",@"4",@"four", nil];

            NSLog(@"mulDict = %@", mulDict);

            //通过key删除对应的键值对

            [mulDict removeObjectForKey:@"four"];

            NSLog(@"mulDict = %@", mulDict);

            //创建一个指定容量的可变字典对象

            NSMutableDictionary *mulDict1 = [NSMutableDictionary dictionaryWithCapacity:12];

            //把传入的字典键值对添加到可变字典中

            [mulDict1 addEntriesFromDictionary:mulDict  ];

            [mulDict1 addEntriesFromDictionary:@{@"five":@"5",@"six":@"6",@"one":@"2"}];

            NSLog(@"mulDict1 = %@", mulDict1);

            //key在字典中是唯一的

            NSMutableDictionary *mulDict2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"1",@"one",@"2",@"two",@"3",@"one", nil];

            NSLog(@"mulDict2 = %@", mulDict2);

            //删除所有的键值对

            [mulDict2 removeAllObjects];

            NSLog(@"mulDict2 = %@", mulDict2);

            //利用key的数组, 删除key数组对应的键值对

            NSArray *keyArray = @[@"one",@"two"];

            [mulDict1 removeObjectsForKeys:keyArray];

            NSLog(@"mulDict1 = %@", mulDict1);

            //用传入的字典对象重置可变字典

            [mulDict1 setDictionary:@{@"hello":@"1",@"world":@"2"}];

            NSLog(@"mulDict1 = %@", mulDict1);

            

        }

        return 0;

    }

     

    让明天,不后悔今天的所作所为
  • 相关阅读:
    depth深度
    Springboot之异步任务和任务调度
    Spring + SpringMVC + MyBatis 整合
    SpringMVC 拦截器配置
    SpringMVC 简单入门
    MyBatis-Spring 事务配置
    MyBatis-Spring 简单入门
    Spring AOP
    Java 动态代理实现
    mongo 停止创建索引 --noIndexBuildRetry
  • 原文地址:https://www.cnblogs.com/-yun/p/4311801.html
Copyright © 2020-2023  润新知