Foudation框架中的集合类2

一.NSArray--不可变数组

创建方式--NSArray *变量名 = 【NSArray arrayWithObject:@“字符串”】 ;

创建多个对象数组元素--NSArray *变量名 = 【NSSArray arrayWithObject:@“字符串”,@“字符串”,@“字符串”,nil】

快速创建多个数组的方式:NSSArray *变量名 = @【@“”,@“”,@“”,@“”】;这是Xcode编译器的特性!

注意:1.OC对象数组只能存放OC对象,不能存放非OC对象类型。

2.OC数组不能存放nil值,nil是元素结束的标志,系统会认为nil前面的时数组元素。

查看数组元素个数的方法,调用getter方法count--【数组变量名 count】(返回数值是unsign long)

访问数组的某个元素的方法调用对象方法objectAtIndex:元素下标。--【数组变量名 objectAtIndex:1】这表示访问这个数组的第1个元素对象

快速遍历对象数组的方法:

for(id obj in 数组名)----id obj代表着数组中的每一个元素

{

  NSLog(@"%@",obj);

}

最完善的遍历方法是,调用enumerateObjectUsingBlock:+Block数据类型

【数组名 enumerateObjectUsingBlock:^(id obj,NSUInteger idx,Bool *stop){NSLog(@"%ld--%@",idx,obj);

if(idx == 0)

{

  *stop = YES;//停止遍历

}}】说明:每遍历一个元素,就会调用一次Block,并且当前元素和索引位置会当做参数传给Block。

NSMutableArray--可变对象数组,是NSArray的子类

创建方式:NSMutableArray *变量名 = 【NSMutableArray array】;

添加对象到数组的方法,调用addObject方法(这只是NSMutableArray:的方法)---【数组变量名 addObject:@“”】;

一次性创建多个元素的方法,调用类方法arrayWithObjects:@(id)......,nil----[NSMutableArray arrayWithObjects:@"",@"",@"",nil];注意可变数组不能使用编译器特性方式@【@“”,@“”,@“”】创建数组对象,因为这只适用于不可变数组NSArray!

删除数组对象的所有元素,调用对象方法removeAllObjects----【数组对象变量名 removeAllObjects】

删除指定对象,调用对象方法removeAllObject:---[对象数组变量名 removeAllObject:@"字符串"]或者调用对象方法reoveObjectAtIndex:---【array removeObjectAtIndex:数组元素下标数值】;

NSSet 集合类,是一个对象数组,但是存放在这个数组里面的对象是没有顺序的。是不可变的数组。

使用方法:调用类方法setWithObject:@“”---NSSet *变量名 = 【NSSet setWithObject:@“”】,同时创建多个就调用类方法setWithObjects

取出其中一个元素的方法(是随机抽取的),调用类方法anyObject---【数组变量名 anyObject】

NSMutableSet:是NSSet的子类,它是可变的,它的创建,添加,删除方法用法都是跟NSMutableArray一样的,只是NSMutableArray是有序的的,而NSMutableSet则是无序的。

NSDictionary俗称‘字典’,也是个集合类,它是不可变的。里面存储的对象都是以键(key)值(value)对的形式存放的,对象能通过key的内容找到vlaue的内容,他们是相对应的。在里面的对象没有顺序之分。

创建方式:调用类方法dictionaryWithObject

NSDictionary *变量名 = 【NSDictionary dictionaryWithObject:@“值” forKey:@“键”】;同时还有一个快捷的创建方式它是属于编译器特性--NSDictionary *变量名 = @{@“键”:@“值”,@“键”:@“值”};

查找字典里的元素方法,调用类方法objectForKey:-----id  变量名 = 【字典变量名 objectFoeKey:@“键”】//能找到与键相对应的值,同时还有一个快捷方法它是属于编译器特性=>   id 变量名 = 字典变量名【@“键”】。

NSMutableDictionary--是NSDictionary的子类,它是可变的。

注意:一个key只能对应一个value,如果有就会覆盖前面的key

创建方式:NSmutableDictionary *变量名 = 【NSMutableDictionary dictioary】//初始化对象;

添加键值对方法---【变量名 setObject:@“值” forKey:@“键”】;

删除键值对方法----【变量名 removeObjectForkey:@“键”】;

遍历字典的方法:[字典变量名 enumerateKeysAndObjectsUsingBlock:^(id key, id obj,BOOL *stop){

  NSLog(@"%@--%@",key , obj);//打印

}]

时间: 2024-09-29 05:33:31

Foudation框架中的集合类2的相关文章

Foundation框架中的集合类

一.NSString--不可变字符串类 它的创建方式有如下几种: 1.直接创建 NSString *变量名 = @“变量名”: 2.调用对象方法 initWithFormat 如: NSString *变量名 = [[NSString alloc]initWithFormat:@“字符串”]: 3.C语言字符串转成OC语言字符串 调用对象方法如  NSString *变量名 = [[NSString alloc]initWithUTF8String:“C语言字符串”]: 4.OC语言字符串转换成

OC学习篇之---Foundation框架中的其他类(NSNumber,NSDate,NSExcetion)

1.NSNumber 这个类主要是用来封装基本类型的,说到这里,就不得不说一下了: OC中的集合是不允许存入基本类型的,所以NSNumber类就诞生了,需要将基本类型封装一下,然后存进去,这个类似于Java中的自动装箱和拆箱,Java中的集合其实也是不允许存入基本类型的,但是我们任然看可以那么操作,就是因为有自动装箱功能,如果你将Eclipse的JDK改成5.0之前的,你看看还能操作吗.. 注:那为什么基本类型不能存入到集合中呢? 原因是在操作集合的时候会操作集合元素中的方法,但是基本类型是没有

OC学习篇之---Foundation框架中的NSArray类和NSMutableArray类

在之前的一篇文章中介绍了Foundation框架中的NSString类和NSMutableString类: http://blog.csdn.net/jiangwei0910410003/article/details/41788223 今天我们继续来看一下Foundation框架中的NSArray类和NSMutableArray类,其实NSArray类和Java中的List差不多,算是一种数据结构,当然我们从这两个类可以看到,NSArray类是不可变的,NSMutableArray类是可变的.

(转载)OC学习篇之---Foundation框架中的其他类(NSNumber,NSDate,NSExcetion)

前一篇说到了Foundation框架中的NSDirctionary类,这一一篇来看一下Foundation的其他常用的类:NSNumber,NSDate,NSException. 注:其实按照Java中集合的思想,应该还有一个Set,是的,OC中有NSSet和NSMutableSet这两个类的,但是,这里我为什么不单独介绍了呢?因为他的操作和NSArray是非常相似的,只是他和NSArray有一个区别就是他不能放重复数据,而且他也是无序的.其他没什么了,所以就不单独介绍了,而且NSSet在后面的

(转载)OC学习篇之---Foundation框架中的NSArray类和NSMutableArray类

在之前的一篇文章中介绍了Foundation框架中的NSString类和NSMutableString类,今天我们继续来看一下Foundation框架中的NSArray类和NSMutableArray类,其实NSArray类和Java中的List差不多,算是一种数据结构,当然我们从这两个类可以看到,NSArray类是不可变的,NSMutableArray类是可变的. 下面就先来看一下NSArray类: 一.NSArray类 1 // 2 // main.m 3 // 16_NSArray 4 /

Hibernate Validator验证框架中@NotEmpty、@NotBlank、@NotNull 的区别

Hibernate Validator验证框架中@NotEmpty.@NotBlank.@NotNull的主要使用情况 @NotEmpty  用在集合类上面 @NotBlank   用在String上面 @NotNull     用在基本类型上 原文地址:https://www.cnblogs.com/zhaofeng555/p/9184368.html

MyBatis框架中Mapper映射配置的使用及原理解析(七) MapperProxy,MapperProxyFactory

从上文<MyBatis框架中Mapper映射配置的使用及原理解析(六) MapperRegistry> 中我们知道DefaultSqlSession的getMapper方法,最后是通过MapperRegistry对象获得Mapper实例: public <T> T getMapper(Class<T> type, SqlSession sqlSession) { final MapperProxyFactory<T> mapperProxyFactory =

MVC框架中的值提供(一)

在MVC框架中action方法中的Model数据的绑定的来源有很多个,可能是http请求中的get参数或是post提交的表单数据,会是json字符串或是路径中的相关数据;MVC框架中针对这些不同的数据来源抽象了IValueProvider接口; public interface IValueProvider { bool ContainsPrefix(string prefix); ValueProviderResult GetValue(string key); } IValueProvide

SSM框架中使用Spring的@Transactional注解进行事务管理

一 介绍 在企业级应用中,保护数据的完整性是非常重要的一件事.因此不管应用的性能是多么的高.界面是多么的好看,如果在转账的过程中出现了意外导致用户的账号金额发生错误,那么这样的应用程序也是不可接受的 数据库的事务管理可以有效地保护数据的完整性(PS:关于数据库的事务管理基础可以参考我以前写过的这篇文章:http://www.zifangsky.cn/385.html),但是原生态的事务操作需要写不少的代码,无疑是非常麻烦的.在使用了Spring框架的应用中,我们可以使用@Transactiona