文档章节

Object-C代码练习【集合_字典类型】

TomatosX
 TomatosX
发布于 2014/10/06 21:38
字数 459
阅读 5
收藏 0
//
//  main.m
//  集合_字典类型
//
//  Created by on 14-10-6.
//  Copyright (c) 2014年 apple. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
///////////////////////////////////////////////不可变字典///////////////////////////////////////////////
        NSNumber *number1 = [NSNumber numberWithInteger:100];
        NSNumber *number2 = [NSNumber numberWithInteger:200];
//        初始化一个元素
        NSDictionary *dic1 = [NSDictionary dictionaryWithObject:number1 forKey:@"numberKey"];
        NSLog(@"%@", dic1);
//        初始化多个元素
        NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:number1, @"number1", number2, @"number2", nil];
        NSLog(@"%@", dic2);
//        从已有的字典中创建字典
        NSDictionary *dic3 = [NSDictionary dictionaryWithDictionary:dic2];
        NSLog(@"%@", dic3);
//        遍历key的值方法一
        for(NSObject *obj in dic2) {
            NSLog(@"迭代key方法一:%@", obj);
        }
//        遍历key的值方法er
        NSEnumerator *enumKey = [dic2 keyEnumerator];
        for (NSString *key in enumKey) {
            NSLog(@"迭代key方法二:%@", key);
        }
        
//        遍历value方法一
        NSEnumerator *enumValue = [dic2 objectEnumerator];
        for (NSObject *obj in enumValue) {
            NSLog(@"迭代value方法一:%@", obj);
        }
        
        NSLog(@"根据key取得value:%@", [dic2 objectForKey:@"number1"]);
        
        NSLog(@"字典数量:%ld", [dic2 count]);
        
//        获取所有key的集合
        NSArray *keyArray = [dic2 allKeys];
        for (NSObject *obj in keyArray) {
            NSLog(@"迭代key方法三:%@", obj);
        }
        
//        获取所有value集合
        NSArray *valueArray = [dic2 allValues];
        NSEnumerator *valueEnum = [valueArray objectEnumerator];
        id tmp = [valueEnum nextObject];
        while (tmp) {
            NSLog(@"迭代value方法二:%@", tmp);
            tmp = [valueEnum nextObject];
        }
        
//        一般枚举
        NSArray *keys = [dic2 allKeys];
        int length = (int)[keys count];
        for (int i = 0; i < length; i++) {
            id key = [keys objectAtIndex:i];
            id obj = [dic2 objectForKey:key];
            NSLog(@"一般枚举:%@", obj);
        }
        
        
///////////////////////////////////////////////可变字典///////////////////////////////////////////////
        NSMutableDictionary *muDic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"v1", @"key1", @"v2", @"key2", nil];
        NSMutableDictionary *muDic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"v3", @"key3", nil];
//        向字典1中添加字典2
        [muDic1 addEntriesFromDictionary:muDic2];
        NSLog(@"%@", muDic1);
        
//        向字典2中追加新值
        [muDic2 setObject:@"v4" forKey:@"key4"];
        NSLog(@"%@", muDic2);
        
//        初始化一个新的可变字典
        NSMutableDictionary *muDic3 = [NSMutableDictionary dictionary];
        NSLog(@"%@", muDic3);
        
//        将空字典3数据对象设置为字典1相同
        [muDic3 setDictionary:muDic1];
        NSLog(@"%@", muDic3);
        
//        将字典3中key1对应的值删除
        [muDic3 removeObjectForKey:@"key3"];
        NSLog(@"%@", muDic3);
        
//        根据指定的数组(key)删除字典3中的内容
        NSArray *keysArray = [NSArray arrayWithObjects:@"key1", @"key2", nil];
        [muDic3 removeObjectsForKeys:keysArray];
        NSLog(@"%@", muDic3);
        
//        移除字典中的所有对象
        [muDic2 removeAllObjects];
        NSLog(@"%@", muDic2);
    }
    return 0;
}



© 著作权归作者所有

共有 人打赏支持
TomatosX
粉丝 22
博文 207
码字总数 119547
作品 0
成都
iOS工程师
Chapter~7 映射和集合类型

7-1 字典方法。哪个字典方法可以用来把两个字典合并到一起? 7-2 字典的键。我们知道字典的值可以是任意的Python对象,那字典的键又如何呢?请试着将除数字和字符串以外的其他不同类型的对象...

小一姐姐
2016/07/17
25
0
OC语言自学《十二》---- OC(Foundation框架部分知识总结)

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

罗眯眯
2014/04/09
0
0
关东升的《从零开始学Swift》3月9日已经上架

大家一直期盼的《从零开始学Swift》于3月9日已经上架,它是关东升老师历时8个月的呕心沥血所编著,全书600多页,此本书基于Swift 2.x,通过大量案例全面介绍苹果平台的应用开发。全书共分5 部...

tony关东升
06/26
0
0
关东升的《《从零开始学Swift》即将出版

大家好: 苹果2015WWDC大会发布了Swift2.0,它较之前的版本Swift1.x有很大的变化,所以我即将出版《从零开始学Swift》《从零开始学Swift》将在《Swift开发指南》第1版的基础上添加Swift2.0的...

智捷课堂
2015/08/17
0
0
通过实例模拟ASP.NET MVC的Model绑定的机制:集合+字典

在本系列的前面两篇文章(《简单类型+复杂类型》、《数组》)我们通过创建的实例程序模拟了ASP.NET MVC默认使用的DefaultModelBinder对简单类型、复杂类型以及数组对象的Model绑定。现在我们...

长平狐
2012/09/04
290
0

没有更多内容

加载失败,请刷新页面

加载更多

day96-20180923-英语流利阅读-待学习

英国王子也不看好人工智能,理由却和霍金不同 Daniel 2018-09-23 1.今日导读 2016 年 3 月 9 日至 15 日,世界围棋冠军李世石与谷歌研发的计算机围棋程序 AlphaGo 进行人机大战并以 1 比 4 ...

飞鱼说编程
8分钟前
0
0
今天在码云遇到一个很有意思的人 for Per.js

今天在码云遇到一个很有意思的人,他在我的Per.js项目下面评论了一句,大意为“你试试这句代码,看看速度到底是你快还是Vue快”【当然,这个评论被我手残不小心删掉了...】。 然后我就试了,...

Skyogo
13分钟前
13
0
Java -------- 首字母相关排序总结

Java 字符串数组首字母排序 字符串数组按首字母排序:(区分大小写) String[] strings = new String[]{"ba","aa","CC","Ba","DD","ee","dd"}; Arrays.sort(strings); for (int i ...

切切歆语
15分钟前
0
0
还在用 Git 的 -f 参数强推仓库,你这是在作死!

最近,美国一个程序员因为同事不写注释,代码不规范,最严重的是天天使用 git push -f 参数强行覆盖仓库,该程序员忍无可忍向四名同事开抢,其中一人情况危急!!! 不写注释、代码不规范是一...

红薯
28分钟前
241
0
NPM报错终极大法

所有的错误基本上都跟node的版本相关 直接删除系统中的node 重新安装 sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*} 重新安装 $ n lts$ npm...

lilugirl
32分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部