zoukankan      html  css  js  c++  java
  • OC第五课

    主要内容:字典、集合、数组排序

    一、字典

           演示样例:

                   name : @" 张三 " 。sex:@" 男 " ; age :@" 21 " ;

                   思考:怎么用字典保存?

           字典:用于保存具有映射关系(key - value对)数据的集合,对于张三来说,key就是name,男来说。sex就是key

           一个key - value对觉得是一个条目,字典是存储key - value对的容器

           与数组不同,字典靠key存取元素,key不能反复,value必须是对象(value能够反复),键值对在字典中的存储是无序的

           字典相同分为可变字典(NSMutableDictionary)、不可变字典(NSDictionary)

           不可变字典(NSDictionary):

           不可变字典一旦创建,键值对就不可更改、不可加入、不可删除,仅仅能读取key或者value

           创建字典对象(三种方法):

                         便利构造器:NSDictionary  *dict1 = [ [ NSDictionary  dictionaryWithObjects : @[@"af", @"afaf", @"adada"]  forkeys : @[ @"first", @"second" , @"three"] ] ;

                         初始化方法:NSDictionary  *dict2 = [ [ NSDictionary  alloc] initWithObjectsAndKeys : @"first" , @"afdaf" , 

                                                                                                                                                    @"second" , @"afadx" ] ;

                          字面量:NSDictionary  *dict3 = @{@"first" : @"aex",

                                                                                 @"second" : @"af", } ;

           经常用法:

                  1、获取全部的key值

                               [ dict1 allKeys ] ;

                  2、获取全部的value值

                               [ dict1  allValues ] ;

                  3、通过key值查询value

                               [ dict1  ObjectForKey : @"first" ] ;

           可变字典(NSMutableDictionary):

                  不可变字典(NSDictionary)的子类

                  能够进行增删改查的操作

          经常用法:

                  1、加入键值对

                               [ dict2  addEntriesFromDictionary : @{@"other" : @"afa" } ] ; / / 作用是将一个字典中的键值对放入还有一个字典中

                               [ dict2  setObject : @"other"  forKey : @"axea" ] ;

                  2、改动key相应的值

                               [ dict2  setObject : @"afas"  forKey : @"first" ] ;

                  3、删除键值对

                              [ dict2 removeObjectForKey : @"first" ] ;

                              [ dict2  removeAllObject ] ; / / 删除所有键值对

                  4、通过for循环遍历全部的键值对

                               for ( NSDictionary  *obj  int  dict3 ) {   / / 高速遍历方法

                                       NSLog ( @" %@ " , obj) ; / / 高速遍历对字典来说,默认打印key值

                               }

    二、集合

           与数学中的集合一样,集合中的元素 “ 唯一 ”

           元素是无序的,而且元素必须是对象,相同分为NSSet(不可变集合)、NSMutableSet(可变集合)

           假设想从集合中取出元素,仅仅能随机取出一个

           NSSet(不可变集合):

                    创建集合:NSSet  *sets = [ NSSet  setWithObjects : @"b" , @"c" , @"a", @"d", nil ] ;

           经常用法:

                  1、获取元素个数    count

                                  [ sets  count ] ;

                  2、获取集合中的一个元素       anyObject

                                 [ sets  anyObject ] ;

                  3、推断集合中是否包括某个元素       containObject

                                 [ sets  containsObject ] ;

    三、集合类型的高速枚举

           for ( <#type  *object#> in <#collection#>){

           }

           object是遍历得到的元素对象

           collection是集合类型的对象:数组、字典、集合

           特点:

                   数组枚举得到数组中的元素对象、

                   字典枚举得到字典中的key值、

                   集合枚举得到集合中的元素对象

    四、数组排序

           原来学的冒泡排序

                  演示样例:

                           int  array[10] = { 2, 5, 4, 7, 6, 3} ;

                           for (int i = 0; i < 6 - 1 ; i++){

                                     for(int j = 0; j < 6 - 1 - i ; j++){

                                                 int temp = array[ j ] ;

                                                 array[ j ] = array[ j + 1 ] ;

                                                 array[ j + 1 ] = temp ;

                                     }

                           }

                          for(int i = 0 ; i < 6 ; i++){

                                      printf("%d" , a[ i ]) ;

                          }

          数组排序:

                        for (int i = 0; i < 6 - 1 ; i++){

                                     for( 推断条件 ){

                                                [array  exchangeObjectAtIndex : j WithObjectAtIndex : j + 1 ] ;

                                     }

                        }

                        数组排序取决与推断条件,推断条件决定了排序方式(升序、降序)
  • 相关阅读:
    DRF版本控制
    Django Rest Framework 视图和路由
    ModelSerializer
    linux下jdk安装与配置
    linux下各种安装包下载地址
    Creating mailbox file: 文件已存在
    vim常用设置
    zookeeper集群搭建与升级
    linux下shell 脚本 中windows换行符换成linux换行符
    spring注解
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7266610.html
Copyright © 2011-2022 走看看