文档章节

Object-C代码练习【集合_NSArray和NSMutableArray】

TomatosX
 TomatosX
发布于 2014/10/06 21:35
字数 478
阅读 16
收藏 0

码上生花,ECharts 作品展示赛正式启动!>>>

//
//  main.m
//  集合
//
//  Created by on 14-10-5.
//  Copyright (c) 2014年 apple. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
//        ================不可变数组,NSArray================
//        初始化一个数组元素,注意这里是arrayWithObject,不是arrayWithObjects
        NSArray *array1 = [NSArray arrayWithObject:@"one"];
        NSLog(@"%@", array1);
        
//        初始化多个元素注意要用nil结尾
        NSArray *array2 = [NSArray arrayWithObjects:@"one", @"two", nil];
        NSLog(@"%@", array2);
        
//        从array2创建array3,array2和array3是指向同一个对象
        NSArray *array3 = [NSArray arrayWithArray:array2];
        NSLog(@"%@", array3);
        
        NSArray *array4 = [[NSArray alloc] initWithArray:array3];
        NSLog(@"%@", array4);
        
//        ================常用方法================
        NSArray *array5 = [[NSArray alloc] initWithObjects:@"a", @"b", @"c", nil];
//        获取数组中的元素个数
        NSLog(@"%ld", [array5 count]);
//        根据下标访问对象
        NSLog(@"%@", [array5 objectAtIndex:1]);
//        在原来的数组上追加一个对象,返回一个新的数组对象
        NSArray *tmp = [array5 arrayByAddingObject:@"ddddd"];
        NSLog(@"%@", tmp);
//        用指定的字符串数组元素连接起来
        NSLog(@"%@", [array5 componentsJoinedByString:@", "]);
//        数组中是否包含某一对象
        NSLog(@"%hhd", [array5 containsObject:@"b"]);
//        查询指定对象在数组中的元素,如果没有此元素,返回NSNotFound
        NSLog(@"%ld", [array5 indexOfObject:@"c"]);
//        获取数组中最后一个元素
        NSLog(@"%@", [array5 lastObject]);
        
//////////////////////////////////////////////////////////////////////////////////////////
//        ================可变数组的常用方法================
        NSMutableArray *muStr = [NSMutableArray arrayWithCapacity:5];
//        向数组中添加元素
        [muStr addObject:@"aaa"];
        NSLog(@"%@", muStr);
//        向数组中指定下标插入元素
        [muStr insertObject:@"bbb" atIndex:1];
        NSLog(@"%@", muStr);
//        移除最后一个元素
        [muStr removeLastObject];
        NSLog(@"%@", muStr);
//        移除指定元素
        [muStr removeObjectAtIndex:0];
        NSLog(@"%@", muStr);
//        向数组中添加数组
        NSArray *tmp2 = [muStr arrayByAddingObjectsFromArray: array2];
        NSLog(@"%@", tmp2);
//        从数组删除数组
        [muStr addObject:@"one"];
        [muStr addObject:@"two"];
        NSLog(@"%@", muStr);
        [muStr removeObjectsInArray:array2];
        NSLog(@"%@", muStr);
        
//        枚举集合,请参考代码OC-ArrayEnumeration
        
///////////////////////////////////练习:倒置数组元素///////////////////////////////////
        NSMutableArray *tmp1 = [[NSMutableArray alloc] initWithObjects:@"1", @"2", @"3", nil];
        int length = (int)[tmp1 count];
        for (int i = 0, j = length - 1; i < j; i++, j--) {
            id tmp2 = [tmp1 objectAtIndex:i];
            [tmp1 replaceObjectAtIndex:i withObject:[tmp1 objectAtIndex:j]];
            [tmp1 replaceObjectAtIndex:j withObject:tmp2];
        }
        NSEnumerator *enumExchange = [tmp1 objectEnumerator];
        id nextObj;
        while (nextObj = [enumExchange nextObject]) {
            NSLog(@"倒置数组:%@", nextObj);
        }
    }
    return 0;
}



© 著作权归作者所有

TomatosX
粉丝 23
博文 207
码字总数 119547
作品 0
成都
iOS工程师
私信 提问
加载中
请先登录后再评论。
NSStirng、NSArray、以及枚举(Method小集合)

一下内容由angellixf整理,这里制作记录: Object-c代码 /*** NSString ***/ //一、NSString /----------------创建字符串的方法----------------/ //1、创建常量字符串。 NSString *astring ...

慎道
2011/03/24
476
0
Object-c 中的数据类型

导航: 基本类型 ID 对象类型常见的有 对象类型 -NSLog -NSNumber -NSString和NSMutableString -NSArray和NSMutableArray -NSSet和NSMutableSet -NSDictionary和NSMutableDictionary 基本类型......

gaoios
2014/01/05
1K
0
NSString和NSMutableString常用方法+NSArray常用代码 (转)

常见的NSString和NSMutableString方法: NSString方法: [plain] view plaincopy +(id) stringWithContentsOfFile:path encoding:enc error:err 创建一个新字符串并将其设置为path指定的文件的......

linFen
2014/05/25
0
0
OC语言自学《十二》---- OC(Foundation框架部分知识总结)

NSRange 表示一个范围 主要用来操作字符串 CGPoint、NSPoint 通过设置x坐标和y坐标来设置某个点 IOS设备的x和y从左上角开始,y值往下面增加,x值往右面增加 CGSize、NSSize 表示一个矩形尺寸...

罗眯眯
2014/04/09
2.1K
0
iOS 数组遍历删除&自定义迭代器

在iOS中,数组是无法通过迭代器删除的,无论是enumerateObjectsUsingBlock迭代器还是for in,抑或是NSEnumerator都无能为力,当然 for循环更不行了,对于java编程的同学来说无法接受啊。 当然...

IamOkay
2016/03/28
1.4K
1

没有更多内容

加载失败,请刷新页面

加载更多

Android | Tangram动态页面之路(七)硬核的Virtualview

何为Virtualview,简单来说,就是通过xml来描述视图,然后压缩成二进制格式,客户端通过解析并渲染成原生view或交由Canvas绘制的过程。 系列文章: 需求背景 Tangram和vlayout介绍 Tangram的...

哈利迪
5分钟前
3
0
深入理解 Java 乱码问题

前言 这段时间在看 TCP/IP 网络通信这块,好奇我的电脑和局域网中电脑怎样通信,又怎样外网通信,Mysql 相关的博客延期执行了。 好久没写博客了,就把以前的博客整理一下,发布到自己的网站上...

万古云霄
6分钟前
12
0
如何监控 Linux 服务器状态?

Linux 服务器我们天天打交道,特别是 Linux 工程师更是如此。为了保证服务器的安全与性能,我们经常需要监控服务器的一些状态,以保证工作能顺利开展。 本文介绍的几个命令,不仅仅适用于服务...

良许Linux
21分钟前
13
0
springboot整合mybatis_plus

码云代码链接: https://gitee.com/liselotte/spring-boot-mp-demo

zhengzhixiang
27分钟前
11
0
BIO、NIO、AIO、Netty面试题

https://juejin.im/post/5e9421836fb9a03c7b3051bb

JaneRoad
35分钟前
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部