对象集合 二

10,创建字典

字典数组也分不可修改NSDictionary和可修改NSMutableDictionary两种。

创建字典如下

NSArray *listOfObjects = [NSArray arrayWithObjects:@"Hello World", @"Bonjour tout le? monde", @"Hola Mundo", nil];

NSArray *listOfKeys = [NSArray arrayWithObjects:@"english", @"french", @"spanish", nil];

NSDictionary *dictionary2 = [NSDictionary dictionaryWithObjects:listOfObjects

forKeys:listOfKeys];

下面是常用构造方法。

- (id)initWithObjects:(const id [])objects forKeys:(const id [])keys count:(NSUInteger)cnt;

初始化的字典 指定的对象,key值和计数....等等

代码示例。

NSArray *listOfObjects = [NSArray arrayWithObjects:@"Hello World",  @"Bonjour tout le monde", @"Hola Mundo", nil];

NSArray *listOfKeys = [NSArray arrayWithObjects:@"english", @"french", @"spanish", nil];

NSDictionary *dictionary2 = [NSDictionary dictionaryWithObjects:listOfObjects

forKeys:listOfKeys];

NSLog(@"dictionary2 = %@", dictionary2);

11,访问字典属性。

接上例子。

NSString *helloWorld = [dictionary2 objectForKey:@"english"];

NSLog(@"%@", helloWorld);

根据key找到相对应的值。

我们测试了,直接用下标方法也可以,且推荐。

NSString *helloWorld = dictionary2[@"english”];

12,获取个数。

其实跟数组一样啦,.count就行。dictionary2.count。

13,遍历字典。

如果用for的话。

for (NSString *s in [dictionary2 allValues]) {

NSLog(@"value: %@", s);

}

这里是指明allValues说明你要遍历值。换成allKeys,说明你要遍历键。

你也可以通过enumerateKeysAndObjectsUsingBlock将键和值全部遍历出来,用法前面讲过,下面是代码示例。

NSArray *listOfObjects = [NSArray arrayWithObjects:@"Hello World", @"Bonjour tout le monde", @"Hola Mundo", nil];

NSArray *listOfKeys = [NSArray arrayWithObjects:@"english", @"french", @"spanish", nil];

NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:listOfObjects

forKeys:listOfKeys];

for (NSString *s in [dictionary allValues]) {

NSLog(@"value: %@", s);

}

for (NSString *s in [dictionary allKeys]) {

NSLog(@"key: %@", s);

}

[dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {

NSLog(@"key = %@ and obj = %@", key, obj);

}];

14,操作字典内容。

比如声明字典然后往里添加值。

NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];

[dictionary setObject:@"Hello World"

forKey:@"english"];

[dictionary setObject:@"Bonjour tout le monde"

forKey:@"french"];

[dictionary setObject:@"Hola Mundo"

forKey:@"spanish”];

移除值。

[dictionary removeObjectForKey:@"french”];

全部移除用removeAllObjects

下面是示例。

NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];

[dictionary setObject:@"Hello World"

forKey:@"english"];

[dictionary setObject:@"Bonjour tout le monde"

forKey:@"french"];

[dictionary setObject:@"Hola Mundo"

forKey:@"spanish"];

NSLog(@"OBJECTS ADDED TO DICTIONARY: %@", dictionary);

[dictionary removeObjectForKey:@"french"];

NSLog(@"OBJECT REMOVED FROM DICTIONARY: %@", dictionary);

[dictionary removeAllObjects];

NSLog(@"ALL OBJECTS REMOVED FROM DICTIONARY: %@", dictionary);

15,保存到文件里。

跟保存数组没啥区别,下面是代码。

NSArray *listOfObjects = [NSArray arrayWithObjects:@"Hello World", @"Bonjour tout le monde", @"Hola Mundo", nil];

NSArray *listOfKeys = [NSArray arrayWithObjects:@"english", @"french", @"spanish", nil];

NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:listOfObjects

forKeys:listOfKeys];

NSString *filePathName = @"/Users/Shared/dictionary.txt";

[dictionary writeToFile:filePathName

atomically:YES];

16,读取。

如果你刚刚保存成功了,下面我们试着读取。

NSString *filePathName = @"/Users/Shared/dictionary.txt";

NSDictionary *dictionary = [[NSDictionary alloc] initWithContentsOfFile:filePathName];

NSLog(@"dictionary: %@", dictionary);

注意用initWithContentsOfFile。

17,我们把set翻译成集合,创建集合。

它有这样几个初始化方法。

- (id)initWithObjects:(const id *)objects  count:(NSUInteger)cnt;

- (id)initWithObjects:(id)firstObj, ... NS_REQUIRES_NIL_TERMINATION;

- (id)initWithSet:(NSSet *)set;

- (id)initWithSet:(NSSet *)set copyItems:(BOOL)flag;

- (id)initWithArray:(NSArray *)array;

Description

Initializes a set with the specified objects and count

Initializes a set with the specified nil- terminated list of objects

Initializes a set using another set

Initializes a set using another set and optionally creates new copies of each object

Initializes a set with the specified objects

集合也分不可变集合NSSet和可变集合NSMutableSet

代码都简单的我懒得抄了。

NSSet *set = [NSSet setWithObjects:@"Hello World", @"Bonjour tout le monde",@"Hola Mundo", nil];

NSLog(@"set: %@",set);

18,获取个数,不废话了,用.count.

19,比较集合。

比如用两个集合。

NSSet *set1 = [NSSet setWithObjects:@"A", @"B", @"C", @"D", @"E", nil];

NSSet *set2 = [NSSet setWithObjects:@"D", @"E", @"F", @"G", @"H", nil];

你想看看两个集合里有没有重合的值,a数组里的值是否存在于b数组。。可以用setsIntersect,它返回一个BOOL值。例如

BOOL set2IsSubset = [set2 isSubsetOfSet:set1];

是否是子集用isSubsetOfSet

isEqualToSet测试两个集合是否相同。

某个对象是否存在于集合里面,用containsObject找出来。

代码示例

NSSet *set1 = [NSSet setWithObjects:@"A", @"B", @"C", @"D", @"E", nil];

NSSet *set2 = [NSSet setWithObjects:@"D", @"E", @"F", @"G", @"H", nil];

NSLog(@"set1 contains:%@", set1);

NSLog(@"set2 contains:%@", set2);

BOOL setsIntersect = [set1 intersectsSet:set2];

BOOL set2IsSubset = [set2 isSubsetOfSet:set1];

BOOL set1IsEqualToSet2 = [set1 isEqualToSet:set2];

BOOL set1ContainsD = [set1 containsObject:@"D"];

NSLog(@"setsIntersect = %i, set2IsSubset = %i, set1IsEqualToSet2 = %i, set1ContainsD = %i", setsIntersect, set2IsSubset, set1IsEqualToSet2, set1ContainsD);

20,遍历集合。

用for遍历。

for (NSString *s in [set1 allObjects]) {

NSLog(@"value: %@", s);

}

用block

[set2 enumerateObjectsUsingBlock:^(id obj, BOOL *stop) {

NSLog(@"obj = %@", obj);

}];

对每个原色都执行一个方法

[set2 makeObjectsPerformSelector:@selector(description)];

排倒序了。

具体代码。

NSSet *set = [NSSet setWithObjects:@"Hello World", @"Bonjour tout le monde", @"Hola Mundo", nil];

for (NSString *s in [set allObjects]) {

NSLog(@"value: %@", s);

}

[set enumerateObjectsUsingBlock:^(id obj, BOOL *stop) {

NSLog(@"obj = %@", obj);

}];

[set makeObjectsPerformSelector:@selector(description)];

NSLog(@"%@",set);

21,设置内容。

添加内容。

[set addObject:@"Hello World”];

删除内容

[set removeObject:@"Bonjour tout le monde”];

删除所有内容。

removeAllObjects

示例代码。

NSMutableSet *set = [[NSMutableSet alloc] init];

[set addObject:@"Hello World"];

[set addObject:@"Bonjour tout le monde"];

[set addObject:@"Hola Mundo"];

NSLog(@"Objects added to set:%@", set);

[set removeObject:@"Bonjour tout le monde"];

NSLog(@"Object removed from set:%@", set);

[set removeAllObjects];

NSLog(@"All objects removed from set:%@", set);

对象集合 二

时间: 2024-10-10 17:45:10

对象集合 二的相关文章

jsWindow 对象 Window 对象 Window 对象表示浏览器中打开的窗口。 如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。 注释:没有应用于 window 对象的公开标准,不过所有浏览器都支持该对象。 Window 对象集合 集合 描述 frames[] 返回窗口中所有命

一.JSX简介 JSX就是Javascript和XML结合的一种格式.React发明了JSX,利用HTML语法来创建虚拟DOM.当遇到<,JSX就当HTML解析,遇到{就当JavaScript解析. 如下(JS写法) var child1 = React.createElement('li', null, 'First Text Content'); var child2 = React.createElement('li', null, 'Second Text Content'); var

Intent之对象传递(Serializable传递对象和对象集合)

Android中Intent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象. 要求被传递的对象必须实现上述2种接口中的一种才能通过Intent直接传递. Intent中传递这2种对象的方法: Bundle.putSerializable(Key,Object); //实现Serializable接口的对象 Bundle.putParcelable(Key, Object); //实现Parcelable接口的对象 一.

Intent之对象传递(Parcelable传递对象和对象集合)

接着上一篇文章,下面我们讨论一下如何利用Parcelable实现Intent之间对象的传递 一.实现对象传递 首先创建User.java实现Parcelable接口: package org.yayun.demo; import java.io.Serializable; import android.R.integer; import android.os.Parcel; import android.os.Parcelable; public class User implements Pa

Android官方ORM数据库Room技术解决方案:@Embedded内嵌对象(二)

Android官方ORM数据库Room技术解决方案:@Embedded内嵌对象(二) (一)附录1简介了Android Room的基本使用.在附录1例子中,User对象元素均为普通的Java基本数据类型,但是实际的开发中,通常建立的持久化存储对象复杂,且通常是结构化的Java对象,互相之间存在引用或者内嵌关系. Android Room支持数据库表Java对象通过注解符@Embedded内嵌一个Java对象.这样就像过去的ORM数据库一样,比如构造一个名为Info的Java对象,作为一个成员变量

浅谈Java回收对象的标记和对象的二次标记过程_java - JAVA

文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 一.对象的标记 1.什么是标记?怎么标记? 第一个问题相信大家都知道,标记就是对一些已死的对象打上记号,方便垃圾收集器的清理. 至于怎么标记,一般有两种方法:引用计数和可达性分析. 引用计数实现起来比较简单,就是给对象添加一个引用计数器,每当有一个地方引用它时就加1,引用失效时就减1,当计数器为0的时候就标记为可回收.这种判断效率很高,但是很多主流的虚拟机并没有采用这种方法,主要是因为它很难解决几个对象之间循环引用的

MVC传递数据-传递对象或对象集合

前言 本文主要介绍从View(或者js)文件向Controller提交对象或者对象集合,比如,将表格中的一行数据作为一个对象提交,或将多行数据作为一个集合提交到Controller. 回顾 从View(或者js)文件向Controller提交数据,你可能见过以下几种方式: 将提交的数据附在url地址后面 $.ajax({ type: "POST", url: "/InviteBid/UpdateBidZRecord/?JudgeBidId=" + JudgeBidI

对象集合 一

1,创建数组. NSArray是固定数组,NSMutableArray是可变数组. 创建固定数组 NSArray *listOfLetters = [NSArray arrayWithObjects:@"A", @"B", @"C", nil]; 也可用类似的方法创建可变数组,NSMutableArray是NSArray的子类.下面是一些最常用的方法以及解释. - (id)initWithObjects:(const id [])objects

JS-window对象集合

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>window对象集合——慕课网总结</title> <style type="text/css"> td{ border: 1px solid #4169E1; } caption{ background-color: lightsteelblue; padding:

实现对象集合与DataTable的映射

最近在研究ASP.NET MVC,跟我的项目经理探究以后,他更偏向于使用ADO.NET而不是ORM,所以自己想做一个Model与DataTable的映射程序,以便以后使用mvc使用到,自己才疏学浅,如果有更好的方法,希望博友们可以指出. 实现映射的前提条件是DataTable里的列名要和自己对象中的属性名一致,才能达到映射的效果. 首先来实现DataTable向对象集合的转换: public class ModelAdapter    {        public static IList<T