//--------------------不可变数组 //1.数组的创建 NSString *s1 = @"zhangsan"; NSString *s2 = @"lisi"; NSString *s3 = @"wangwu"; //(1) NSArray *array1 = [[NSArray alloc] initWithObjects:s1,s2,s3, nil]; NSLog(@"%@",array1); //等价于 array1.descripton //(2)使用类方法创建 NSArray *array2 = [NSArray arrayWithObjects:s1,s2,s3, nil]; //(3)创建一个数组对象,同时往里面存入一元素 NSArray *array3 = [NSArray arrayWithObject:s1]; //(4)创建一个数组,此数组中的元素来自array1 NSArray *array4 = [NSArray arrayWithArray:array1]; NSLog(@"array4 = %@",array4); //2.通过下标取元素 NSString *str1 = [array4 objectAtIndex:0]; //3.数组元素的个数 NSUInteger count = [array4 count]; //等价于:array4.count; //4.判断数组中的是否包含某个元素 BOOL isContains = [array4 containsObject:@"zhangsan"]; NSLog(@"isContains:%d",isContains); //5.查找某一个对象在数组中的下标位置 NSUInteger index = [array4 indexOfObject:@"wangwu"]; if (index == NSNotFound) { NSLog(@"Not find elemnts"); } else { NSLog(@"index = %ld",index); } //6.链接数组中的字符串(前提:数组中都是字符串) NSString *joinString = [array4 componentsJoinedByString:@","]; NSLog(@"joinString = %@",joinString); //7.访问数组最后一个元素 NSString *lastObj = [array4 lastObject]; //array4.lastObject NSLog(@"lsatObj = %@",lastObj); //8.再原路的数组后面添加一个元素 NSArray *array5 = [array4 arrayByAddingObject:@"zhaolia"]; NSLog(@"array5 = %@",array5); //取对应下标元素 int idx=4; if (idx <array5.count) { NSString *s = [array5 objectAtIndex:idx]; NSLog(@"s = %@",s); } //--------------数组的遍历 //1.普通遍历 for (int i=0; i<array5.count; i++) { NSString *str = [array5 objectAtIndex:i]; NSLog(@"%@",str); } //快速遍历 for (NSString *s in array5) { NSLog(@"%@",s); } //4.4之后的优化 //1.创建一个素组 NSArray *array7 = @[s1,s2,s3]; //等价于:NSArray *array7 = [NSArray arrayWithObjects:s1,s2,s3,nil]; NSLog(@"array7 = %@",array7); NSString *str = array7[0]; NSLog(@"array[7] = %@",str); //------------------可变数组 //初始化,设定元素个数为5,可以更改的。(继承自NSArray) NSMutableArray *mutableArray = [NSMutableArray arrayWithCapacity:5]; //想数组中添加一个元素 [mutableArray addObject:@"aaa"]; //向数组中指定下标插入元素 [mutableArray insertObject:@"ccc" atIndex:0]; NSLog(@"%@",mutableArray); //原来位置元素后移 //移除最后一个元素 [mutableArray removeLastObject]; NSLog(@"移除最后元素后:%@",mutableArray); //移除指定元素 [mutableArray removeObject:@"aaa"]; //移除指定下标元素 [mutableArray removeObjectAtIndex:0]; //向数组中添加数组 [mutableArray addObjectsFromArray:array1]; //1.创建可变数组 NSString *t1 = @"zhangsan "; NSString *t2 = @"lisi"; NSString *t3 = @"wangwu "; // NSMutableArray *mArray1 = @[s1,s2,s3];//wrong.这里创建了一个不可变数组 NSMutableArray *mArray1 = [[NSMutableArray alloc] initWithObjects:s1,s2,s3, nil]; //创建数组时,开辟3个空间用于存储元素,存储超过容量,数组自动增大空间 NSMutableArray *mArray2 = [[NSMutableArray alloc] initWithCapacity:3]; NSMutableArray *mArray3 = [NSMutableArray arrayWithCapacity:3]; //2.添加元素 [mArray2 addObject:t1]; [mArray2 addObject:t2]; [mArray2 addObject:t3]; NSLog(@"mArray2= %@",mArray2); //将mArray2 中元素添加到mArray3中 // [mArray3 addObjectsFromArray:mArray2]; //将mArray2作为二维数字添加 [mArray3 addObject:mArray2]; NSLog(@"mArray3 = %@",mArray3); //3.插入元素 [mArray2 insertObject:@"Jack" atIndex:0]; NSLog(@"mArray2 = %@",mArray2); //4.替换元素 [mArray2 replaceObjectAtIndex:0 withObject:@"John"]; NSLog(@"替换:%@",mArray2); //5.互换两个元素的位置 [mArray2 exchangeObjectAtIndex:3 withObjectAtIndex:0]; NSLog(@"mArray2 = %@",mArray2); //6.删除元素 //6.1根据下标删除 [mArray2 removeObjectAtIndex:2]; NSLog(@"mArray2 = %@",mArray2); //6.2删除最后一个元素 [mArray2 removeLastObject]; NSLog(@"mArray2 = %@",mArray2); //6.3删除指定的对象 //[mArray2 removeObject:@"zhangsan"]; //6.4删除所有元素 [mArray2 removeAllObjects]; NSLog(@"mArray2 = %@",mArray2);
相关推荐
在Objective-C语言中,字符串、数组、字典以及集合是常用的数据结构类型。这些类型分为可变和不可变两种,它们分别对应不同场景下的需求。在Objective-C中,字符串被封装在NSString类中,数组由NSArray和...
数组是编程中最常用的数据结构之一,用于存储有序集合。Objective-C提供了两个数组类:NSArray和NSMutableArray。NSArray用于创建不可变数组,而NSMutableArray则提供了修改数组内容的方法。以下是Objective-C中数组...
Object-C是一种面向对象的编程语言,它在C语言的基础上进行了扩展,支持面向对象的特性,如类、对象、继承等。Object-C最初由Stepstone公司开发,并在苹果公司推出的macOS和iOS系统中得到广泛应用。它是开发苹果平台...
数组与字典:在Object-C中,数组是用于存储有序元素集合的容器,使用NSArray表示不可变数组,NSMutableArray表示可变数组。字典是一种键值对的集合,用于存储映射关系,使用NSDictionary表示不可变字典,...
Objective-C(Object-c)是Apple公司为Mac OS X和iOS操作系统开发的一种面向对象的编程语言,它是C语言的超集,融入了Smalltalk的关键特性。本教程旨在为初学者提供一个全面的Objective-C入门指导,涵盖了从基本语法...
标题《学习 Object-C入门教程》中所涉及的知识点涵盖了Objective-C语言的基础入门,以及如何使用该语言开发iOS应用程序。Objective-C 是一种面向对象的编程语言,它被广泛用于苹果公司的iOS和macOS操作系统的应用...
### iOS企业培训视频Object-C基础等教程就业班全套课程知识点概览 #### 一、基础知识篇 ##### 1.1 iOS开发概述 - **iOS系统介绍**:了解iOS操作系统的特性和版本发展历史。 - **iOS开发环境搭建**:安装Xcode集成...
### Object-C 学习大纲详解 #### 一、Object-C 的历史与发展 - **起源**:Object-C 语言起源于20世纪80年代,由 Brad Cox 发明。 - **发展**:它是在 C 语言的基础上增加了面向对象的特性而形成的一种编程语言。 -...
在Objective-C中,数组是一种常用的数据结构,用于存储相同类型的多个元素。 - **声明与初始化**:在示例代码中,数组通过以下方式声明和初始化: ```objective-c int array[] = {5, 1, 4, 2, 8, 3, 7, 6}; ``` ...
### Object-C(中文版) #### 开始吧 **Objective-C**是一种面向对象的编程语言,它是C语言的一种扩展。此语言被广泛应用于Mac OS X和GNUstep等遵循OpenStep标准的系统中。Objective-C能够在gcc支持的操作系统上进行...
在Objective-C中,NSArray和NSMutableArray是两种常用的数组类型。NSArray是不可变的,一旦创建就不能修改;而NSMutableArray则是可变的,支持添加、删除和插入元素。对于NSMutableArray,可以使用`insertObject:at...
本文将详细探讨如何在Java、Python和C#这三种常用编程语言中实现图像(Image)与字节数组(byte[])之间的相互转换。 **Java中的转换** 1. **Image转byte[]** 在Java中,我们可以使用`FileInputStream`读取图片...
在Objective-C(简称OC)中,数组是一种常用的数据结构,用于存储多个有序的元素。当你需要将数组中的元素顺序反转,即实现数组的倒序,可以采用多种方法。本篇文章将详细讲解如何在OC中实现数组倒序的操作。 首先...
它们用于异步编程,如GCD(Grand Central Dispatch)或处理数组。 6. **内存管理**:Objective-C曾经使用MRR(Manual Reference Counting),现在大部分情况使用ARC(Automatic Reference Counting)。理解引用计数...
总之,NSArray是Objective-C中处理有序对象集合的基础工具,其不可变的特性保证了数据的稳定性,适合存储静态数据。而NSMutableArray则提供了更多动态操作,适应于需要频繁修改数据的场景。理解并熟练运用NSArray的...
- 如何在C++中实现数据结构来存储和处理数据,这可能包括数组、向量、列表、集合等。 - 聚类算法的基本原理和常见算法,例如K-means、层次聚类、DBSCAN、谱聚类等。 - 如何在C++中实现这些聚类算法,以及如何优化...
在iOS或Mac应用开发中,Objective-C是一种常用的编程语言,用于构建各种类型的应用,包括待办事项(Todo)应用。本教程将引导你通过几个关键步骤来创建一个基础的Todo应用,让你熟悉Objective-C和iOS/Mac开发环境。 1...
描述Data::Object::Array 提供了操作 Perl 5 数组引用的常用方法。也可以看看数据::对象::通用 作者阿尔纽柯克 anewkirk@ana.io 版权和许可本软件版权 (c) 2014 归 Al Newkirk 所有。 这是免费软件; 您可以根据与 ...
Foundation框架作为整个框架的基础,与用户界面无关,主要包含了一系列常用的数据类型和类,例如字符串、数组、字典等。UIKit则专注于基础UI组件,是iOS应用开发中不可或缺的一部分。 #### 常用结构体 Foundation...
1. **C++语言基础**:C++是C语言的扩展,引入了类、对象、封装、继承和多态等面向对象编程概念。理解这些基础是掌握C++科学计算的前提,包括理解指针、内存管理、运算符重载和模板等。 2. **面向对象编程(OOP)**...