集合-字典 方法练习

- (void)viewDidLoad {

[super viewDidLoad];

//用一个或多个键值对初始化一个字典对象,以值,键,值,键,值,键,...,nil的顺序

NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:@1,@"key1",@2,@"key2",@3,@"key3" ,nil];

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

//用两个数组初始化一个字典(一个key数组,一个value数组,大小必须相等,否则崩溃

NSArray *valueArray = @[@"1",@"2",@"3"];

NSArray *keyArray = @[@"key1",@"key2",@"key"];

NSDictionary *dict2 = [[NSDictionary alloc] initWithObjects:valueArray forKeys:keyArray];

NSLog(@"dict:%@",dict2);

NSDictionary *dict3 = [[NSDictionary alloc] initWithDictionary:dict];

NSLog(@"dict:%@",dict3);

//保存字典对象内容到文件

NSString *path = @"/Users/apple/Desktop/dict.plist";

[dict writeToFile:path atomically:YES];

//从之前保存的文件读取数据到字典对象

NSDictionary *dict4 = [NSDictionary dictionaryWithContentsOfFile:path];

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

//不可变字典一样可以字面常量初始化,key在前,value在后

NSDictionary *dict5 = @{@"key":@1,@"key1":@2,@"key3":@3};

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

//通过指定的key来取对应的的对象,如果没有这个key,返回nil

NSNumber *num = [dict objectForKey:@"key"];

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

//获取字典中键值对的个数

NSInteger pairCount = [dict count];

NSLog(@"pairCount:%d",pairCount);

NSArray *allkeys = [dict allKeys];

NSArray *allvalues = [dict allValues];

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

NSLog(@"allvalue:%@",allvalues);

//老办法遍历

NSArray *allkeys2 = [dict2 allKeys];

NSUInteger count = [allkeys2 count];

for (int i=0; i<count; i++) {

id key = [allkeys2 objectAtIndex:i];

id value = [dict2 objectForKey:key];

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

}

//快速枚举

for(id key in dict2){

id value = [dict objectForKey:key];

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

}

//不可变字典对象

NSMutableDictionary *mdict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@1,@"key",@2,@"key2", nil];

//删除一个键-值

[mdict removeObjectForKey:@"key"];

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

//添加一个键-值

[mdict setObject:@3 forKey:@"key3"];

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

NSMutableDictionary *mdict2 = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@1,@"key4",@2,@"key4",@3,@"key5", nil];

//将一个字典对象里的键-值添加到另一个字典对象里

[mdict2 addEntriesFromDictionary:mdict];

NSLog(@"mdcit2:%@",mdict2);

[mdict removeAllObjects];

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

NSMutableDictionary *mdict3 = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@1,@"key3",@2,@"key4",@3,@"key5", nil];

NSMutableDictionary *mdict4 =[[NSMutableDictionary alloc] initWithObjectsAndKeys:nil];

[mdict4 setDictionary:mdict3];

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

NSArray *array = @[@"key4",@2,@"key4",@3,@"key5"];

[mdict3 removeObjectsForKeys:array];

//集合

NSSet *set = [[NSSet alloc] initWithObjects:@1,@2,@3, nil];

NSSet *set2 = [[NSSet alloc] initWithObjects:@3,@4,@5, nil];

//随机取一个元素

NSNumber *num2 = [set anyObject];

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

//判断集合是否包含某元素

BOOL b = [set containsObject:@1];

NSLog(@"%hhd",b);

//判断两个集合是否有交集

BOOL a = [set intersectsSet:set2];

NSLog(@"%hhd",a);

//判断两集合是否相等

BOOL c = [set isEqualToSet:set];

NSLog(@"%hhd",c);

//判断一个集合是否是两一个集合的子集

BOOL d = [set isSubsetOfSet:set2];

NSLog(@"%hhd",d);

//不可变集合

NSMutableSet *mset = [[NSMutableSet alloc] initWithObjects:@1,@2,@3, nil];

NSMutableSet *mset2 = [[NSMutableSet alloc] initWithObjects:@2,@3, nil];

//[mset intersectsSet:mset2];

//[mset addObject:@4];

//[mset removeObject:@4];

//NSArray *array3 = @[@4,@5];

//[mset addObjectsFromArray:array3];

//[mset minusSet:mset2];

// [mset removeAllObjects];

[mset unionSet:mset2];

NSLog(@"%@",mset);

}

集合-字典 方法练习,布布扣,bubuko.com

时间: 2024-12-18 20:07:17

集合-字典 方法练习的相关文章

ios中集合遍历方法的比较和技巧

本文原文发表自我的[自建博客],cnblogs同步发表,格式未经调整,内容以原博客为准 我是前言 集合的遍历操作是开发中最常见的操作之一,从C语言经典的for循环到利用多核cpu的优势进行遍历,开发中ios有若干集合遍历方法,本文通过研究和测试比较了各个操作方法的效率和优略势,并总结几个使用集合遍历时的小技巧. ios中常用的遍历运算方法 遍历的目的是获取集合中的某个对象或执行某个操作,所以能满足这个条件的方法都可以作为备选: 经典for循环 for in (NSFastEnumeration)

Python字典方法copy()和deepcopy()的区别

1 from copy import deepcopy # import deepcopy模块 2 d = {} 3 d['name'] = ['black', 'guts'] # d = {'name': ['black', 'guts']} 4 c = d.copy() # c = {'name': ['black', 'guts']} 5 dc = deepcopy(d) # dc = {'name': ['black', 'guts']} 6 d['name'].append('whit

[ jquery 过滤器 filter(expr|obj|ele|fn) ] 筛选出与指定表达式匹配的元素集合,这个方法用于缩小匹配的范围,用逗号分隔多个表达式

筛选出与指定表达式匹配的元素集合,这个方法用于缩小匹配的范围,用逗号分隔多个表达式 当参数是函数时,函数里面的参数解释如下: 一个函数用来作为测试元素的集合.它接受一个参数index,这是元素在jQuery集合的索引.在函数, this指的是当前的DOM元素 实例:<!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equ

ztree获取当前选中节点子节点id集合的方法(转载)

本文实例讲述了ztree获取当前选中节点子节点id集合的方法.分享给大家供大家参考.具体分析如下: 要求:获取当前选中节点的子节点id集合. 步骤: 1.获取当前节点 2.用ztree的方法transformToArray()获取当前选中节点(含选中节点)的子节点对象集合. 3.遍历集合,取出需要的值. treeNode:当前选中节点对象 function getChildNodes(treeNode) { var naviTree = $.fn.zTree.getZTreeObj(zTreeI

《Java虚拟机原理图解》1.5、 class文件中的方法表集合--method方法在class文件中是怎样组织的

0. 前言 了解JVM虚拟机原理是每一个Java程序员修炼的必经之路.但是由于JVM虚拟机中有很多的东西讲述的比较宽泛,在当前接触到的关于JVM虚拟机原理的教程或者博客中,绝大部分都是充斥的文字性的描述,很难给人以形象化的认知,看完之后感觉还是稀里糊涂的. 感于以上的种种,我打算把我在学习JVM虚拟机的过程中学到的东西,结合自己的理解,总结成<Java虚拟机原理图解> 这个系列,以图解的形式,将抽象的JVM虚拟机的知识具体化,希望能够对想了解Java虚拟机原理的的Java程序员 提供点帮助.

java 程序语言中的LinkedList 集合基本方法演示

java 程序语言中的LinkedList 集合基本方法演示 import java.util.Iterator; import java.util.LinkedList; public class LinkedListDemos { public static void main(String[] args) { // 新建一个容器 LinkedList link = new LinkedList(); link.addFirst("abc1"); link.addFirst(&qu

黑马程序员——java基础 ArrayList集合基本方法演示

java基础 ArrayList集合基本方法演示 import java.util.ArrayList; import java.util.Iterator; public class ArrayListDemos { public static void main(String[] args) { // 创建一个新的容器 ArrayList al = new ArrayList(); al.add("abc1"); al.add("abc2"); al.add(&

python字典-字典方法

有 3 个字典方法,它们将返回类似列表的值,分别对应于字典的键.值和键-值对: keys().values()和 items().这些方法返回的值不是真正的列表,它们不能被修改,没有 append()方法.但这些数据类型(分别是 dict_keys.dict_values 和 dict_items)可以用于 for 循环.为了看看这些方法的工作原理,请在交互式环境中输入以下代码: 原文地址:https://www.cnblogs.com/dingkailinux/p/8216087.html

遍历Map集合四中方法

<embed wmode="transparent" src="http://chabudai.sakura.ne.jp/blogparts/honehoneclock/honehone_clock_tr.swf" quality="high" bgcolor="#ffffff" width="160" height="70" name="honehoneclock&qu