文档章节

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

没有更多内容

加载失败,请刷新页面

加载更多

聊聊storm的AggregateProcessor的execute及finishBatch方法

序 本文主要研究一下storm的AggregateProcessor的execute及finishBatch方法 实例 TridentTopology topology = new TridentTopology(); topology.newStream("spout1", spout......

go4it
48分钟前
1
0
大数据教程(7.5)hadoop中内置rpc框架的使用教程

博主上一篇博客分享了hadoop客户端java API的使用,本章节带领小伙伴们一起来体验下hadoop的内置rpc框架。首先,由于hadoop的内置rpc框架的设计目的是为了内部的组件提供rpc访问的功能,并不...

em_aaron
今天
1
0
CentOS7+git+github创建Python开发环境

1.准备CentOS7 (1)下载VMware Workstation https://pan.baidu.com/s/1miFU8mk (2)下载CentOS7镜像 https://mirrors.aliyun.com/centos/ (3)安装CentOS7系统 http://blog.51cto.com/fengyuns......

枫叶云
昨天
1
0
利用ibeetl 实现selectpicker 的三级联动

1. js 直接写在html页面上面,ibeetl 就可以动态地利用后台传上来的model List ,不需要每次点击都要ajax请求后台 2. 使用selectpicker 的时候,除了对selecct option的动态处理后,还需要 $("#...

donald121
昨天
1
0
Android SELinux avc dennied权限问题解决方法

1. 概述 SELinux是Google从android 5.0开始,强制引入的一套非常严格的权限管理机制,主要用于增强系统的安全性。 然而,在开发中,我们经常会遇到由于SELinux造成的各种权限不足,即使拥有“...

TreasureWe
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部