美文网首页
24章:Collection 类

24章:Collection 类

作者: 帽子和五朵玫瑰 | 来源:发表于2018-05-31 09:36 被阅读0次

Collection类

Collection类的实例用于保存指向其他对象的指针。

24.1NSSet/NSMutableSet

NSSet对象所包含的“内容”是无序的。而且在一个NSSet对象中,某个特定的对象只能出现一次。

NSSet对象的最大用处就是检查某个对象是否存在。例如,你有一组儿童不宜进入的网站链接,再为小孩打开某个网页时,最好先查看相应的网页是否在这个儿童不宜组里。NSSet对象完成此类任务的速度比数组快的对。

它也有NSMutableSet

NSSet对象中的对象是无序的,所以不能通过索引来访问,只能向NSSet对象查询某个对象是否寻找。可以使用下面的方法来查询

-(BOOL) containsObject :(id)x;

NSObject类定义了一个名为 isEqual:的方法。日过程序要检查这两个对象是否相等,就可以使用isEqual方法

-(BOOL)isEqual : (id) other
{
    return (self == other);
}

在苹果公司提供的类中,有些覆盖率isEqual:方法,例如NSString。覆盖后的方法会比较字符串中的字符。

equal:相等的 字符相等

identical:相同的,同一个对象,地址相同。

24.2NSDictionary/NSMutableDictionary

键值对(key value pair)。健通常是字符串,值可以是任意类型的对象。以键为索引。·

24.3不可修改对象

虽然对外声明的是NSArray,但实际创建的是NSMutableArray

使用不可修改对象可以节约内存提高性能。因为它永远无序拷贝。

24.4数组排序

-(void)sortUsingDexcriptors:(NSArray *)sortDescriptors;

NSSortDescriptor *lastAsc = [NSSortDescriptor sortDescriptorWithKey:@"lastName"
                                                          ascending:YES];

NSSortDescriptor *voa = [NSSortDescriptor sortDescriptorWithKey:@"valueOfAssets"
                                                          ascending:YES];

NSSortDescriptor *eid = [NSSortDescriptor sortDescriptorWithKey:@"employeeID"
                                                          ascending:YES];

[employees sortUsingDexcriptors:@[voa,eid]];


24.5过滤

对Collection进行过滤的时候,程序将对collection对象和一条逻辑语句进行比较,得到一个合成的collection,这个collection只包含满足这条语句的对象。

Foundation中有个NSPredicate的类。NSPredicate对象可以包含一条语句,其运算结果可以为“真”或“假”

-(void)filterUsingPredicate:(NSPredicate *)predicate;
//NSArray有一个名为filteredArrayUsingPredicate:方法,可以创建一个新的数组,能够“满足”传入的NSPredicate对象的对象
-(NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate;

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"holder.valueOfAsset>70"];
NSArray *toBeReclaimed = [allAssets filteredArrayUsingPredicate:predicate];

Collection对象与所有权

向Collection对象中加入某个对象是,collection对象会成为该对象的拥有方,如果从collection对象中移除改对象,collection对象就不再是该对象的拥有方了。

C语言基本类型

Collection对象只能保存对象,如果要保存float,int变量或指向结构的指针,则可以先将这些C语言基本类型封装成对象,再存入collection对象。

NSMutableArray *list = [[NSMutableArray alloc]init];
[list addObject:@4];
[list addObject:@5.6];

Collection对象和list

本章所结束的Collectuion对象都不能保存nil,如果要将nil加入。则可以用NSNull类。

[list addObject:[NSNull null]];

相关文章

  • Collection类

    简介 Collection类的实例用于保存指向其他对象的指针。(NSArray类及其子类NSMutableArra...

  • 我所了解的ArrayList源码

    继承及接口 首先你要知道List类继承了Collection类,而Collection类继承了Iterator类。...

  • java数据结构概述

    一 类继承图 1.1 collection 1.2 map 二 collection 2.1 Collection...

  • 2020-06-28【集合-Collection】

    Collection概述 集合类体系结构 Collection以及常用方法 Collection遍历 练习

  • collections相关的数据结构及API

    1、列举几个Java Collection类库中的常用类 此处应该有Collection类图。 Collectio...

  • 集合篇一

    Collection 分为两类:List和Set。JDK不提供直接继承自Collection的类,JDK提供的类都...

  • 24章:Collection 类

    Collection类 Collection类的实例用于保存指向其他对象的指针。 24.1NSSet/NSMuta...

  • 集合

    常用集合类 单列集合 Collection:Iterable 是单列集合类的根接口 Collection用于存储一...

  • Collection集合方法实例

    Collection 概述 Collection 是所有容器集合的父类接口。Collection 表示一组对象,这...

  • JAVA中的集合框架 List (二)

    Collection接口List接口简介 Collection接口、子接口及其实现类,Collection接口是j...

网友评论

      本文标题:24章:Collection 类

      本文链接:https://www.haomeiwen.com/subject/fygfsftx.html