1. //
  2. // main.m
  3. // OC4_可变数组
  4. //
  5. // Created by zhangxueming on 15/6/11.
  6. // Copyright (c) 2015年 zhangxueming. All rights reserved.
  7. //
  8.  
  9. #import <Foundation/Foundation.h>
  10. //NSMutableArray
  11.  
  12. int main(int argc, const char * argv[]) {
  13. @autoreleasepool {
  14. //创建一个指定容量大小的可变数组对象
  15. NSMutableArray *mulArray = [[NSMutableArray alloc] initWithCapacity:];
  16. NSMutableArray *mulArray2 = [NSMutableArray arrayWithCapacity:];
  17. NSLog(@"mulArray = %@ mulArray2 = %@", mulArray, mulArray2);
  18. //添加数组元素
  19. [mulArray addObject:@"one"];
  20. NSLog(@"mulArray = %@", mulArray);
  21. //在指定位置添加数组元素
  22. [mulArray insertObject:@"two" atIndex:];
  23. NSLog(@"mulArray = %@", mulArray);
  24. //将传入的数组添加到可变数组中
  25. [mulArray addObjectsFromArray:@[@"three",@"four",@"five",@"six"]];
  26. NSLog(@"mulArray = %@", mulArray);
  27.  
  28. //删除数组中最后一个元素
  29. [mulArray removeLastObject];
  30. NSLog(@"mulArray = %@", mulArray);
  31. //删除指定位置的元素
  32. [mulArray removeObjectAtIndex:];
  33. NSLog(@"mulArray = %@", mulArray);
  34. //替换指定位置的数组元素
  35. [mulArray replaceObjectAtIndex: withObject:@"helloworld"];
  36. NSLog(@"mulArray = %@", mulArray);
  37. //交换指定位置的数组元素
  38. [mulArray exchangeObjectAtIndex: withObjectAtIndex:];
  39. NSLog(@"mulArray = %@", mulArray);
  40. //删除数组中所有的元素
  41. [mulArray removeAllObjects];
  42. NSLog(@"mulArray = %@", mulArray);
  43.  
  44. NSMutableArray *mulArray3 = [NSMutableArray arrayWithObjects:@"one",@"two",@"two",@"three",@"two",@"three",@"four",@"five", nil];
  45. //删除指定范围内的指定的元素
  46. [mulArray3 removeObject:@"three" inRange:NSMakeRange(, )];
  47. NSLog(@"mulArray3 = %@", mulArray3);
  48.  
  49. //删除数组中所有出现的目标元素
  50. [mulArray3 removeObject:@"two"];
  51. NSLog(@"mulArray3 = %@", mulArray3);
  52.  
  53. //删除所有在传入数组中出现的元素
  54. [mulArray3 removeObjectsInArray:@[@"one",@"four",@"six"]];
  55. NSLog(@"mulArray3 = %@", mulArray3);
  56.  
  57. //删除指定范围的数组元素
  58. NSMutableArray *mulArray4 = [NSMutableArray arrayWithArray:@[@"one",@"two",@"three",@"four"]];
  59. [mulArray4 removeObjectsInRange:NSMakeRange(, )];
  60. NSLog(@"mulArray4 = %@", mulArray4);
  61.  
  62. //修改(重置)数组
  63. [mulArray4 setArray:@[@"hello",@"world",@"qian",@"feng"]];
  64. NSLog(@"mulArray4 = %@", mulArray4);
  65.  
  66. //数组排序
  67. NSMutableArray *sortArray = [NSMutableArray arrayWithArray:@[@"one",@"two",@"three",@"four",@"five"]];
  68. [sortArray sortUsingSelector:@selector(compare:)];
  69. NSLog(@"sortArray = %@", sortArray);
  70.  
  71. //用传入的数组替换指定范围内的数组元素
  72. [mulArray4 replaceObjectsInRange:NSMakeRange(, ) withObjectsFromArray:@[@"one",@"two",@"three"]];
  73. NSLog(@"mulArray4 = %@", mulArray4);
  74.  
  75. //替换指定范围内的数组元素
  76. //- (void)replaceObjectsInRange:(NSRange)range withObjectsFromArray:(NSArray *)otherArray range:(NSRange)otherRange;
  77. NSMutableArray *mulArray5= [NSMutableArray arrayWithArray:@[@"one",@"two",@"three",@"four",@"five"]];
  78. NSArray *array = @[@"hello",@"world",@"qian",@"feng",@"jiaoxue"];
  79. [mulArray5 replaceObjectsInRange:NSMakeRange(, ) withObjectsFromArray:array range:NSMakeRange(, )];
  80. NSLog(@"mulArray5 = %@", mulArray5);
  81.  
  82. // - (void)insertObjects:(NSArray *)objects atIndexes:(NSIndexSet *)indexes;
  83. NSMutableIndexSet *indexset = [NSMutableIndexSet indexSetWithIndex:];
  84. [indexset addIndex:];
  85. [mulArray5 insertObjects:@[@"ten",@"nine"] atIndexes:indexset];
  86. NSLog(@"mulArray5 = %@", mulArray5);
  87.  
  88. //删除下表位置的元素
  89. // - (void)removeObjectsAtIndexes:(NSIndexSet *)indexes;
  90. //用传入数组替换指定位置的数组元素
  91. // - (void)replaceObjectsAtIndexes:(NSIndexSet *)indexes withObjects:(NSArray *)objects;
  92. [mulArray5 replaceObjectsAtIndexes:indexset withObjects:@[@"qian",@"feng"]];
  93. NSLog(@"mulArray5 = %@", mulArray5);
  94. }
  95. return ;
  96. }

OC4_可变数组的更多相关文章

  1. 可变数组NSMutableArray

    //创建一个空的可变数组 NSMutableArray *array = [NSMutableArray array]; //向数组里面添加对象 [array addObject:@"< ...

  2. Objective - C NSArray不可变数组和NSMutableArray可变数组

    OC中存储数据最常用 的两个容器就是数组和字典,而作为最常用的,应该了解这所有的特点,及用法. OC中的数组是一个容量,有序的管理了一系列元素,并且存放在数组里的元素,必须是对象类型. 不可变数组,见 ...

  3. NSArray与NSMutableArray 数组与可变数组

    1.NSArray 是一个父类,NSMUtableArray是其子类,他们构成了OC的数组.2.NSArray的创建NSArray * array = [[NSArray alloc]initWith ...

  4. objective-c可变数组

     1 #pragma mark ---------------可变数组-----------------  2 //        可以在数组里面进行增删改的操作  3 //  4 //        ...

  5. iOS -Swift 3.0 -Array(数组与可变数组相关属性及用法)

    // // ViewController.swift // Swift-Array // // Created by luorende on 16/9/12. // Copyright © 2016年 ...

  6. 【转】不可变数组NSArray与可变数组NSMutableArray

    原文网址:http://www.jianshu.com/p/1ad327f56d1d 不可变数组NSArray //创建一个空数组 NSArray *array = [NSArray array]; ...

  7. Swift不可变数组

    Objective-C编写了2个不同的类来区分不可变数组(NSArray)和可变数组(NSMutableArray): Swift通过使用常量和变量来区分不可变数组和可变数组. 只要将数组定义为常量, ...

  8. IOS 中runtime 不可变数组__NSArray0 和__NSArrayI

    IOS 中runtime 不可变数组__NSArray0 和__NSArrayI 大家可能都遇到过项目中不可变数组避免数组越界的处理:runtime,然而有时候并不能解决所有的问题,因为类簇不一样 # ...

  9. OC基础 可变数组与不可变数组的使用

    OC基础 可变数组与不可变数组的使用 1.不可变数组 1.1不可变数组的创建 //实例方法 NSArray *array = [[NSArray alloc] initWithObjects:&quo ...

随机推荐

  1. android系统自带图标集合(android.R.drawable查看)

    alert_dark_frame alert_light_frame arrow_down_float arrow_up_float bottom_bar btn_default btn_defaul ...

  2. .NET世界各成员之间的关系

    相信看到这篇文章的人,心中肯定有这样的想法:ODBC.OLEDB.ADO.ADO.NET貌似都是访问数据库的东东,那么他们之间有什么区别,又有什么联系呢?不要着急,待我慢慢道来. 先说ODBC,官方的 ...

  3. 【10】令operator=返回一个reference to *this

    1.令operator= 返回一个reference to *this,为什么? 这只是一个协议,并无强制性.但是,为了与基本类型的行为保持一致性,强烈建议这么做.设计class 有一个宝典:一旦有疑 ...

  4. xps13 关机充电 右边的usb口

    bios里设置了 usb powershare但关机的时候还是不能充电 度娘了一下,发现不解决问题,只能放狗了.果然谷歌里搜到答案,是windows的电源策略. I figured it out. A ...

  5. (转)如何在JavaScript与ActiveX之间传递数据2

    本文研究如何在JS等脚本语言与ActiveX控件之间通信,如何传递各种类型的参数,以及COM的IDispatch接口.使用类似的方法,可以推广到其他所有脚本型语言,如LUA,AutoCad等.本文将研 ...

  6. mysql datetime、date、time、timestamp区别

    我们看看这几个数据库中(mysql.oracle和sqlserver)如何表示时间 mysql数据库:它们分别是 date.datetime.time.timestamp和year.date :“yy ...

  7. A+B Problem III

    描述 求A+B是否与C相等. 输入 T组测试数据. 每组数据中有三个实数A,B,C(-10000.0<=A,B<=10000.0,-20000.0<=C<=20000.0) 数 ...

  8. Java设计模式07:常用设计模式之装饰器模式(结构型模式)

    1. Java之装饰器模式(Decorator Pattern) (1)概述:     装饰模式在Java种使用也很广泛,比如我们在重新定义按钮.对话框等时候,实际上已经在使用装饰模式了.在不必改变原 ...

  9. Android界面刷新

    Android的invalidate与postInvalidate都是用来刷新界面的,用法区别在于: 1)invalidate():实例化一个Handler对象,并重写handleMessage方法调 ...

  10. chrome,firefox

    chrome开发者工具 firefox插件httpfox