zoukankan      html  css  js  c++  java
  • Foundation框架—集合

    一、NSArray和NSMutableArray

    (一)NSArray不可变数组

    (1)NSArray的基本介绍

    NSArray是OC中使用的数组,是面向对象的,以面向对象的形式操纵对象,是不可变数组。

    C语言数组有一个缺点即数组中只能存放同种数据类型的元素。

    OC数组只能存放OC对象,不能存放非OC对象,如int,结构体和枚举等。

    (2)NSArray的创建

     

    (3)NSArray的访问

     (4)NSArray的遍历

    数组的遍历有以下几种方式:

    首先创建一个数组

     

    第一种方法:使用for循环遍历

     

     

    Block遍历的深入研究:

    每拿到一个元素,就传递给obj,就会调用一次block,并且把当前的元素和索引位置当做参数传递给block。

    注意1:break只使用在两种场合,即switch和循环结构中。

    注意2:stop参数用来停止遍历,其值若为YES,则停止。

     

    (二)NSMutableArray可变数组

    (1)NSMutableArray的基本使用

    注意:NSMutableArray继承自NSArray,几乎拥有NSArray的一切方法。

     

     

    二、NSSet和NSMutableSet

    (一)NSSet不可变集合

    基本使用:

     

    (二)NSMutableSet可变集合

    基本使用:

     

    (三)NSSet和NSArray的对比

    (1)共同点:

    1)都是集合,都能够存放多个对象

    2)只能存放oc对象,不能存放非oc对象类型(如int等基本数据类型和结构体,枚举等)。

    3)本身都不可变,都有一个可变的子类。

    (2)不同点:

    1)NSArray有顺序,NSSet没有顺序

    三、NSDictionary和NSMutableDictionary

    (一)NSDictionary不可变字典

    (1)介绍

    现实中的字典:根据索引找到具体的内容

    OC中的NSDictionary:根据key找到value。里面存储的东西都是键值对。

    (2)NSDictionary的创建

     

    注意:快速创建字典是编译器特性。

    (3)NSDictionary的访问

     

    (4)NSDictionary的遍历

     

    (二)NSMutableDictionary可变字典

      (1)NSMutableDictionary的基本使用

     

    (2)NSMutableDictionary的使用注意

     

    注意:这种快速创建的方式只适用于不可变字典。

  • 相关阅读:
    LeetCode Subsets II
    LeetCode Rotate Image
    LeetCode Palidrome Number
    LeetCode Generate Parentheses
    LeetCode Maximum Subarray
    LeetCode Set Matrix Zeroes
    LeetCode Remove Nth Node From End of List
    Linux Loop设备 使用
    Linux 文件系统大小调整
    LeetCode N-Queens II
  • 原文地址:https://www.cnblogs.com/zengshuilin/p/5735135.html
Copyright © 2011-2022 走看看