文档章节

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

TomatosX
 TomatosX
发布于 2014/10/06 21:38
字数 459
阅读 5
收藏 0
点赞 0
评论 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
博文 143
码字总数 119547
作品 0
成都
iOS工程师
Chapter~7 映射和集合类型

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

小一姐姐 ⋅ 2016/07/17 ⋅ 0

关东升的《从零开始学Swift》第2版已经出版

关东升的《从零开始学Swift》第2版已经出版 大家好: 苹果2015WWDC大会发布了Swift2.0,它较之前的版本Swift1.x有很大的变化,所以我即将出版《从零开始学Swift》 《从零开始学Swift》将在《...

tony关东升 ⋅ 2016/02/24 ⋅ 0

Python学习笔记(六)

第六章 组合数据类型 组合数据类型概述 计算机不仅对单个变量表示的数据进行处理,更多情况,计算机需要对一组数据进行批量处理。一些例子包括: 给定一组单词{python, data, function, list...

jplee ⋅ 2017/07/26 ⋅ 0

通过实例模拟ASP.NET MVC的Model绑定的机制:集合+字典

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

长平狐 ⋅ 2012/09/04 ⋅ 0

关东升的《从零开始学Swift》3月9日已经上架

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

tony关东升 ⋅ 2016/03/11 ⋅ 0

关东升的《从零开始学Swift》3月9日已经上架

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

智捷课堂 ⋅ 2016/03/11 ⋅ 0

关东升的《《从零开始学Swift》即将出版

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

智捷课堂 ⋅ 2015/08/17 ⋅ 0

Objective-C 入门(三)对象字面量

Object C 对象字面量,是clangv3.1(对应Apple LLVM 4.0)引入的一项新特性(clang,再写这篇文章是,最新版本是v3.3). 主要有一下几点: 1.NSNumber字面量:从标量(scalar)字面量表达式中创...

李海珍 ⋅ 2013/01/12 ⋅ 0

iOS新手入门计划

入门任务 了解编程的主要概念,熟悉开发环境 1,安装配置开发环境 耗时:8-16小时 如果超出时间,请寻求帮助。 2,新建第一个hello world应用(story board) 耗时:4小时 放置UILabel在上面 ht...

云飞扬v5 ⋅ 2015/10/29 ⋅ 0

python之列表、元组

一 :列表打了激素的数组数组是只能存储同一数据类型的结构列表:可以存储多数数据类型的数组定义列表: 元组和列表的不同:元组是不可变对象而列表是可变对象 ++++++++++++++++++++++++++++...

张冰1号 ⋅ 01/04 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Python模块/包/库安装(6种方法)

Python模块/包/库安装(6种方法) 冰颖机器人 2016-11-29 21:33:26 一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包(压缩文件zip...

cswangyx ⋅ 9分钟前 ⋅ 0

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经...

董黎明 ⋅ 18分钟前 ⋅ 0

openJdk和sun jdk的区别

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢? 历史上的原因是,Ope...

jason_kiss ⋅ 27分钟前 ⋅ 0

梳理

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 它是JS的状态容器,是一种解决问题的方式,所以即可以用于 react 也可以用于 vue。 需要理解其思想及实现方式。 应用中所有的 stat...

分秒 ⋅ 40分钟前 ⋅ 0

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 今天 ⋅ 0

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 今天 ⋅ 0

到底会改名吗?微软GVFS 改名之争

微软去年透露了 Git Virtual File System(GVFS)项目,GVFS 是 Git 版本控制系统的一个开源插件,允许 Git 处理 TB 规模的代码库,比如 270 GB 的 Windows 代码库。该项目公布之初就引发了争...

linux-tao ⋅ 今天 ⋅ 0

笔试题之Java基础部分【简】【二】

1.静态变量和实例变量的区别 在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变...

anlve ⋅ 今天 ⋅ 0

Lombok简单介绍及使用

官网 通过简单注解来精简代码达到消除冗长代码的目的 优点 提高编程效率 使代码更简洁 消除冗长代码 避免修改字段名字时忘记修改方法名 4.idea中安装lombnok pom.xml引入 <dependency> <grou...

to_ln ⋅ 今天 ⋅ 0

【转】JS浮点数运算Bug的解决办法

37.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数) 我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998 怎么会这样,两个只有一位小数的数字相乘,怎...

NickSoki ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部