又到晚上了,继续码代码。

正在此时,老爸一个电话”海阔凭鱼跃,天高任鸟飞“,老爸不在为老问题烦我了。

自由了,突然感觉压力好大啊。

将来混的太惨,可咋办啊~

第1个例子是,不可变集合。

Set集合,概念是通用的,无非是和Java中的java.util.Set语法不一致,方法的个数不一致罢了。

集合的核心特征,就是元素不会重复,是否重复根据元素的hashCode和equals方法来定。

代码

//
// main.m
// NSSetTest
//
// Created by fansunion on 15/12/3.
// Copyright (c) 2015年 demo. All rights reserved.
// #import <Foundation/Foundation.h>
//定义一个函数,可以把Array或者NSSet集合转换为字符串
NSString* NSCollectionToString(id collection){
NSMutableString* str = [NSMutableString stringWithString:@"["];
//使用for-each循环语法,遍历集合
for(id obj in collection){
[str appendString:[obj description]];
[str appendString:@", "];
}
//获取字符串长度,去掉最后2个多余的字符
NSUInteger length = [str length];
[str deleteCharactersInRange:NSMakeRange(length-2, 2)];
[str appendString:@"]"];
return str;
} //NSSet是不可变集合,可变集合是NSMutableSet。
//与NSArray,NSMutableArray一个鸟样
int main(int argc, const char * argv[]) { @autoreleasepool {
//构造4个元素的集合,其中2个是重复的
NSSet* set1 = [NSSet setWithObjects:@"A", @"B",@"C",@"B",nil];
NSLog(@"The set1 count :%ld",[set1 count]);
NSLog(@"The set1 :%@",NSCollectionToString(set1));
//set1是不可变集合
NSSet* set2 =[set1 setByAddingObject:@"D"];
NSLog(@"The new set1 :%@",NSCollectionToString(set1));
NSLog(@"The set2 :%@",NSCollectionToString(set1)); BOOL isSubSet =[set1 isSubsetOfSet:set2];
NSLog(@"The set1 is subSet of set2:%d",isSubSet); BOOL have = [set1 containsObject:@"C"];
NSLog(@"The set1 has C:%d",have); }
return 0;
}

运行结果

2015-12-03 20:16:52.049 NSSetTest[5903:419290] The set1 count :3

2015-12-03 20:16:52.050 NSSetTest[5903:419290] The set1 :[A, B, C]

2015-12-03 20:16:52.050 NSSetTest[5903:419290] The new set1 :[A, B, C]

2015-12-03 20:16:52.051 NSSetTest[5903:419290] The set2 :[A, B, C]

2015-12-03 20:16:52.051 NSSetTest[5903:419290] The set1 is subSet of set2:1

2015-12-03 20:16:52.051 NSSetTest[5903:419290] The set1 has C:1

Program ended with exit code: 0

照目前这个学习进度,2017年之前,初步掌握Object-C和iOS,是没啥问题的。

最新文章

  1. Delphi中DLL的创建和使用
  2. Effective Java 52 Refer to objects by their interfaces
  3. 三分钟部署Laxcus大数据管理系统
  4. fedora21安装xmind7
  5. JavaScript几种类工厂实现原理剖析
  6. IOS 计算密码强度
  7. sql 中的时间处理问题
  8. 【2017-03-31】JS-DOM操作:操作属性、彩虹导航栏、定时器、操作内容、创建元素并添加、操作相关元素
  9. 《Thinking in Java》 And 《Effective Java》啃起来
  10. git使用教程之了解git
  11. Mysql Binlog三种格式详细介绍
  12. js获取浏览器信息
  13. ubuntu下交叉编译mono
  14. 反爬虫破解系列-汽车之家利用css样式替换文字破解方法
  15. unity编辑器之自动提示订外卖
  16. How to extract msu/msp/msi/exe files from the command line
  17. HtmlAnchor点击之后保持高亮
  18. Python并发编程-信号量
  19. FZOJ 2245 动态树(离散+离线+ 树状数组)
  20. OpenCV支持向量机SVM对线性不可分数据的处理

热门文章

  1. idea编写Swing程序中文乱码的解决办法
  2. 普通页面使用vue.js心得
  3. oracle11.2静默安装
  4. vue中的生命周期
  5. HDU——T 1498 50 years, 50 colors
  6. C++异常注意事项
  7. 关闭 sftp
  8. hdoj--2094--产生冠军(集合函数)
  9. JavaScript实现记住密码功能
  10. bioinformaitcs的latex版本参考文献填坑