oc 知識總結四 (NSSet、NSMutableSet)
一、NSSet(不可變集合)
1、NSSet的建立 (1)建立一個空集合NSSet *set = [NSSetset];
(2)建立單個物件的集合NSSet *set = [NSSetsetWithObject:@"張三"];
(3)建立多個物件的集合
方式一:使用setWithObjects:NSSet *set1=[NSSetsetWithObjects:@"hello",@"world",@"haha",nil];
方式二:使用類方法NSSet *set2=[[NSSetalloc]
3、常用方法示例 (1)程式碼部分
//isEqual是判斷兩個物件是否是同一個物件
//集合存入資料的順序和輸出順序不一定一樣,集合元素是無序的。
//集合是一組單值物件的集合,同一個物件只能儲存一個
// 1、建立一個空集合,此處的set是集合
NSSet *set=[NSSetset];
// 2、建立單個物件的集合
NSSet *set0=[NSSetsetWithObject:@"張三"];
// 3、建立多個物件的集合
//方式一:
NSSet
//方式二:
NSSet *set2=[[NSSetalloc]initWithObjects:@"wa",@"haha",nil];
//NSSet常用的方法,無符號型別要用%lu
NSUInteger count =[set1count];
NSLog(@"集合1有%lu個元素",count);
//以陣列的形式獲取集合中的所有物件
NSArray *allObjects=[set2allObjects
//返回集合中的任意一個物件(隨機取物件)
id obj1=[set1anyObject];
NSLog(@"randWord= %@",obj1);
//判斷是否包含某個物件(isContain/isExit)
BOOL isContain =[set2containsObject:@"wa"];
NSLog(@"%@",isContain?@"包含":@"不包含");
//判斷兩個集合中的元素是否存在相同元素的物件,兩個集合是否有交集
BOOL isIntersect=[set2intersectsSet:set1];
NSLog(@"%@",isIntersect?@"存在相同元素的物件":@"不存在相同元素的物件");
//判斷兩個集合中的元素是否完全匹配
BOOL isEqual=[set2isEqualToSet:set1];
//判斷一個集合是否是另一個集合的子集合,如果set2中所有元素都存在於set1,返回true
BOOL isSubSet=[set2isSubsetOfSet:set1];
NSLog(@"%@",isSubSet?@"set2是set1的子集合":@"set2不是set1的子集合");
//1.向集合中新增一個新元素,返回一個新的集合
NSSet *newSet=[set1setByAddingObject:@"admin"];
NSLog(@"%@",newSet);
//2.向集合中新增一個新元素,改變原來的集合,一般不使用
set1=[set1 setByAddingObject:@"admin"];
NSLog(@"%@",set1);
//將集合A的所有元素賦值給另一個集合B,返回一個新的集合C,自身是不改變的
NSSet *newSet1=[set1setByAddingObjectsFromSet:set2];
NSLog(@"%@",newSet1);
NSLog(@"%@,%@",set1,set2);
//遍歷方法1
for(NSString *objin newSet1){
NSLog(@"%@",obj);
}
//遍歷方法2
NSArray *newArr=[newSet1allObjects];
for(int i=0;i<newSet1.count;i++){
NSString *str=[newArrobjectAtIndex:i];
NSLog(@"%@",str);
}
(2)輸出結果
2、NSMutableSet(可變集合)
1、簡介:可變集合繼承自NSSet 2、可變集合的建立 (1)建立一個空的集合NSMutableSet *set=[NSMutableSetset];
(2)建立單個物件的集合NSMutableSet *set = [NSMutableSetsetWithObject:@"1"];
(3)建立多個物件的集合NSMutableSet *set1 = [NSMutableSetsetWithObjects:@"1",@"2",@"3" ,nil];
NSMutableSet *set2 = [[NSMutableSetalloc]initWithObjects:@"3",@"2",@"1",nil];
3、常用方法
NSMutableSet *set1=[NSMutableSetset];
[set1 addObject:@"張三"];
[set1 addObject:@"李四"];
[set1 addObject:@"王五"];
[set1 removeObject:@"王五"];
[set1 addObject:@"李四"];
NSMutableSet *set2=[NSMutableSetset];
[set2 addObject:@"張三"];
[set2 addObject:@"李斯"];
[set2 addObject:@"王無"];
//並集
[set1 unionSet:set2];
for(NSString *namein set1){
NSLog(@"並集:%@",name);
}
//交集
[set1 intersectSet:set2];
for(NSString *namein set1){
NSLog(@"交集:%@",name);
}
//差集(在A中存在而不存在B中的物件)
[set1 minusSet:set2];
for(NSString *namein set1){
NSLog(@"差集:%@",name);
}
(2)輸出結果 1>並集的結果:
2>交集的結果
3>差集的結果
相關推薦
oc 知識總結四 (NSSet、NSMutableSet)
注:集合是一組單值物件的集合,同一個物件只能儲存一個,且集合中的元素是無序的。 一、NSSet(不可變集合) 1、NSSet的建立 (1)建立一個空集合 NSSet *set = [NSSet
oc 知識總結二(NSArray、NSMutableArray)
注:1、陣列:是一組有序的物件的集合,通過索引下標獲取到陣列中的各個元素。 2、陣列中不可以存放基本資料型別,只能存放物件。如果需要將劇本資料型別放入陣列中,需要通過NSNumber來放入。 一、不可變陣列(NSArray) 1、建立NSArray (1)方法
JAVA基礎知識總結14(String、StringBuffer、StringBuilder)
null 多線程操作 部分 單個 進行 單線程 pri lse 行修改 1.String字符串: java中用String類進行描述。對字符串進行了對象的封裝。這樣的好處是可以對字符串這種常見數據進行方便的操作。對象封裝後,可以定義N多屬性和行為。 如何定義字符串對
每日知識總結計劃(java、android、react native、web框架、js、css、html、ajax)首頁
作為一名資訊系的學生,現在學的太多,忘得也快,但是實在不忍心辛苦理解的知識就這樣慢慢被自己忘記。 所有這篇帖子作為今天起(2018.10.16 17:32),記錄每天得知識總結首頁。 下面得帖子連結分為一個月為一個單位做記錄,每天的記錄就在當月的一個月的帖子上更新。 20
oc 知識總結五(NSDate)
NSDate:用來處理日期的類 NSDateFormatter:用來處理日期與字元床之間的轉換 1、日期類的常用處理方法 (1) (2)NSLocale代表一個語言、國際環境,比如大陸的簡體中文,就
JAVA基礎知識總結12(多線程)
必須 對象 存放位置 垃圾 java基礎知識 current syn 原理 運行 進程:正在進行中的程序。其實進程就是一個應用程序運行時的內存分配空間。 線程:其實就是進程中一個程序執行控制單元,一條執行路徑。進程負責的是應用程序的空間的標示。線程負責的是應用程序的執行順序
SQL 使用總結一( 規範、基礎)
目錄 寫在之前 命名規範 規格化形式 1、第一規格形式(第一正規化) 2、第二規格形式(第二正規化) 3、第三規格化形式(第三正規化) 4、規格化的優點和缺點 5、去規格化資料庫 從已有表建立新表 完整性約束 1、主鍵約束 2、唯一性約束 3、
oc知識總結三 NSDictionary、NSMutableDictionary
注:字典是由鍵-值對組成的資料集合,他是無序的一組集合,我們通過key查詢對應的value,key通常是字串物件,在字典中,key的值必須是唯一的,而且key不能為空。 字典分為兩種:不可變字典(NSDictionary)和可變字典(NSMutableDctionary)
JAVA總結篇四(類、方法、物件與變數)
類、方法、物件與變數在這裡記錄的是部分常見的方面,至於其它方面就不多說了。一、類(屬性與方法的載體)這裡主要說的是具體類,抽象類,介面;1.具體類:具體類也是我們最常用到的類,主要有是由以下形式出現:[訪問許可權修飾符] [修飾符] class 類名 { 類體
MFC 小知識總結四
list 音樂 star tor open details cli wav mage 1 PlaySound 播放WAV格式的音樂 This function plays a sound specified by a file na
編寫高質量代碼:改善Java的151個建議四(類、對象、方法)31-51
jvm 分配 sys fin -- pac 重構 oid 只有一個 31.接口中不要存在實現代碼 接口中不能存在實現代碼(雖然可以實現,但是如果把實現代碼寫在接口中,那麽接口就綁定了可能變化的因素,這就導致實現不在文檔和可靠,是隨時可能被拋棄,被修改,被重構的) pa
總結一下各種居中(內聯元素、塊級元素、浮動元素、絕對定位元素)*(水平、垂直)
一個 常見 一是 -a flex 樣式 有一個 margin round 在平時寫網頁樣式的時候,元素居中應該是最常見不過的了,在這裏我們把常見居中的情況簡單總結一下。本文討論以下幾種情況:內聯元素、塊級元素、浮動元素、絕對定位元素。居中的情況分兩種情況:水平居中和垂直
第二篇 python基礎知識總結:數據、運算符
pre http 賦值 float 異或 mage IT ext inpu 引子 我們跟任何人交流,說的每一句都是都一些文字組成,包含名詞、動詞、語句、標點符號等,組成我們說普通話構成的基本要素。同理我們學習python語言也要明白這些基本要素,也就是我們常說的
JAVA基礎知識總結18(反射)
java基礎 null exce 既然 nsa 操作 程序 san 包含 反射技術: 其實就是動態加載一個指定的類,並獲取該類中的所有的內容。而且將字節碼文件封裝成對象,並將字節碼文件中的內容都封裝成對象,這樣便於操作這些成員。簡單說:反射技術可以對一個類進行解剖。
一文讀懂推薦系統知識體系-上(概念、結構、演算法)
本文主要闡述: 推薦系統的3個W 推薦系統的結構 推薦引擎演算法 瀏覽後四章的內容請見下篇。 1. 推薦系統的3個W 1.1 是什麼(What is it?) 推薦系統就是根據使用者的歷史行為、社交關係、興趣點、所處上下文環境等資訊去
深度學習 (四)Keras利用CNN實現圖片識別(Mnist、Cifar10)
視覺集 視覺資料庫是用來提供給圖片識別領域用素材,目前各個教材常用的主要有手寫數字識別庫、10中小圖片分類庫,詳細介紹如下: Mnist &
SQL 使用總結四(關於索引)
目錄 介紹 索引的型別 何時考慮使用索引 何時應該避免使用索引 刪除索引 SQL SERVER中的索引 1、簡述 2、說明 3、例子 介紹 簡單來說,索引就是指標,指向表裡的資料。資料庫裡的索引和圖書中的索引十分類似。當資料庫沒有
python小總結3(異常、單例設計模式)
一、異常 AttributeError:試圖訪問一個物件沒有的成員【屬性和方法】 ValueError:值錯誤,傳入了一個不期望的值 ImportError:無法匯入模組或者包:基本上路徑問題 IndexError:訪問了不在範圍內的索引 KeyError:試圖訪問字典中不存在的鍵 NameErr
【JavaScript高階】2、基礎總結深入(資料、變數、記憶體)
一、資料—變數—記憶體 1. 什麼是資料? * 儲存在記憶體中代表特定資訊的'東西', 本質上是0101... * 資料的特點: 可傳遞, 可運算 * 一切皆資料 * 記憶體中所有操作的目標: 資料 *
python3.X 爬蟲針對拉鉤,直聘,大街等招聘網站的簡歷爬蟲遇到的ip代理的總結四( pycharm執行,程式碼篇)
這裡面主要講解的是兩個大方向的程式碼: 一個是selenium+chrome中的ip代理: from selenium import webdriver chromeOptions = webdriver.ChromeOptions() # 設定代理 chromeO