ios学习笔记(五)数组和字典

原创 2015年11月17日 19:14:37

数组类,可存放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输出时,字典使用{}包围内容,数组使用()包围内容
   
 

版权声明:本文为博主原创文章,未经博主允许不得转载。

手把手教你学五笔打字输入法之1(如何快速巧记五笔字型字根表篇)

五笔字型字根表之巧记速记 前段时间教一位朋友学习五笔字型打字法,现将我的巧记五笔字型字根表的方法也共享出来,如果可以帮到你,那就达到我的目的了。 首先,五笔就是汉字的五种最基本的笔划,包括...
  • GarfieldEr007
  • GarfieldEr007
  • 2016年03月13日 14:31
  • 4517

《CANOpen》 学习笔记4

《CANOpen》 学习笔记4CANOpen 学习笔记4 现场总线 CANopen 设计与应用 第一章 通信和设备模型 1 通信层和参考模型 第二章 物理层 1 位定时和位填充 第三章 CAN协议 1...
  • wumingdezu
  • wumingdezu
  • 2016年10月23日 17:19
  • 1149

PMBOK(第五版)学习笔记 —— 1 引论

PMBOK(第五版)第一章引论部分的知识点梳理。
  • AntreeHuang
  • AntreeHuang
  • 2015年03月16日 16:52
  • 2915

Swift 学习笔记 2-简单值(变量、常量、数组、字典 )

一、变量      Swift的变量有如下几个特征:      1.var 开头定义变量      2.变量需要赋初值      3.打印时利用 \() 来打印 [ \()表示对()的内容进行计算 ]...
  • catch01
  • catch01
  • 2015年02月01日 13:48
  • 370

swift学习笔记(一)(常量、变量、数据类型、字符串的拼接、数组、字典)

import Foundation print("wangshuai") // 1.var 变量 // 当指定一个变量的时候就不可以再指定了,比如 var a = 1 虽然修饰的a可...
  • iOS_Pop
  • iOS_Pop
  • 2016年01月22日 16:59
  • 1124

Python学习笔记3-Python元组、数组、字典集合的操作

在Python中数组中的每一项可以是不同的数据类型 元组:只能读不能写的数组 aTuple=(1,'abc','tmc',79.0,False) print aTuple[1:3] print typ...
  • work201003
  • work201003
  • 2015年12月30日 00:09
  • 514

Xcode9学习笔记69 - 创建各种类型的文件(文本、数组、字典、图片)

override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after l...
  • u011728344
  • u011728344
  • 2017年11月22日 07:55
  • 52

iOS学习笔记之字典排序

有时候拼接参数会用到字典传过来的参数而且是要排序的,下面我们看看应该怎么去做! NSDictionary *params = @{ @"...
  • ANDY_GUO_wei
  • ANDY_GUO_wei
  • 2017年06月11日 15:33
  • 107

IOS 开发学习笔记-基础 UI(十)九宫格布局,块动画,字典转模型,Xib使用

IOS 开发学习笔记-基础 UI(10)九宫格布局,块动画,字典转模型,Xib使用 大概如下图示:九个应用图标的样子 功能分析 (1)以九宫格的形式展示应用信息 (2)点击下载...
  • u013410274
  • u013410274
  • 2015年12月18日 20:18
  • 640

黑马程序员——IOS学习笔记(C语言字符串和数组)

-----------android培训、java培训、IOS学习型技术博客、期待与您交流!------------ 数组: 数组在C语言中有着特殊的地位,它有很多特性,例如它的存储是...
  • u012386336
  • u012386336
  • 2015年09月22日 17:21
  • 157
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ios学习笔记(五)数组和字典
举报原因:
原因补充:

(最多只允许输入30个字)