OC 基礎(chǔ) ---- >數(shù)組、字典、集合

A ----- > 數(shù)組簡述

1、數(shù)組是一個有序的集合, OC中的數(shù)組只能存儲對象類型,但是對于類型沒有限制

2、通過下標訪問數(shù)組元素, 下標從0 開始

3、NSArray :不可變數(shù)組,即:對象創(chuàng)建好以后,數(shù)組中元素個數(shù)不能發(fā)生變化

4、NSMutableArray :可變數(shù)組,即對象創(chuàng)建好以后,數(shù)組中的元素可以靈活進行增刪改操作

B ------ > NSArray 創(chuàng)建

便利構(gòu)造 : arrayWithObjects : @,@ ,@ ,nil;?

字面量 : 使用@[] ?" [] "中存入對應(yīng)的對象,對象之間用 “ , ” 隔開 例如 : NSSArray *names = @[@"a",@"b",@1];

C ------- > NSArray 常用方法

1、元素個數(shù) : @property ( readonly ) NSUInteger count;

2、獲取數(shù)組中指定下標對應(yīng)的元素

- ( id )ObjectAtIndex : ( ?NSUInteger ) index

3、字面量方式通過下標獲取數(shù)組元素

數(shù)組對象 【元素下標】

4、用來判斷數(shù)組中是否包含某一個給定的對象

- ( BOOL ) containsObject : ( id ) anObject;

5、獲取數(shù)組元素對應(yīng)的索引

- ( NSUInteger )indexOfObject : ( id ) anObject;

6、按照給定的字符串進行截取,將截取的多段字符串放入數(shù)組中

- ( NSArray *)componentsSeperatedByString : ( NSString * ) separator;

例子 : NSString *str = @"www.jjj.com";

NSArray *array = [ str ?componentsSeperatedByString :@" . " ]?


7、將數(shù)組中的元素按照給定的字符串格式拼接成一個完整的字符串對象

- ( NSString *) componentsJoinedByString : ( NSString *) separator;

例子 : NSSArray *array = @[ @"北京",@“大連”,@“河南”,@“上海”,@“廣州”,@“西安” ];

NSString *str = [ array compontentsJoinedByString : "&" ];

D ---- > NSMutableArray 簡述

1、NSMutableArray 是 OC中的可變數(shù)組,父類是 NSArray, 具有NSArray 的所有方法 , 同時在此基礎(chǔ)上添加了 對自身對象的 增刪改操作

E ------ > NSMutableArray ?的創(chuàng)建

arrayWithCapacity ? ?@[@,@,@]mutableCopy

F ----- >NSMutableArray 常用操作

1、數(shù)組中添加一個對象

- (void)addObject: ( id ) object;

2、數(shù)組中指定位置插入一個對象

- ( void )insertObject : ( id ) anObject atIndex : ( NSUInteger )index;

3、數(shù)組中移除一個操作

- ( void )removeObject : ( id ) object;

4、移除數(shù)組中最后一個對象

- ( void)removeLastObject;

5、移除數(shù)組中所有的元素

- ( void ) removeAllObjects;

6、移除數(shù)組中指定位置的元素

- (id)removeObjectAtIndex : ( NSUInteger ) index;

7、使用指定的對象替換指定位置的對象

- ( void )replaceObjectAtIndex : ( NSUInteger ) index ?withObject: ( id ) anObject

8、交換指定的兩個下標對應(yīng)的對象

?- (void)exchangeObjectAtIndex : ( NSUInteger ) index*1 ?withObjectAtIndex: ( NSUInteger ) id*2?


J ------ > 字典起源

name : 張三 ? sex : 男 ?age :18

遇到上述數(shù)據(jù)就是用字典存儲 ,或者自定義類存儲

1、字典是一個無序的集合, 用來存儲具有一一對應(yīng)關(guān)系的數(shù)據(jù)

2、字典中存儲的每一個對象都是一對鍵值對, 鍵值對包含兩個 部分 key 和 value , key 和 value 的值都是對象類型

3、對于每一對key -value ?稱為一個條目 ( Entry )

K ------ > 字典的特點

1、與數(shù)組不同, 字典靠key 存取元素

2、 key 與 value 必須是對象類型

3、字典中鍵值對的存儲是無序的

4、字典分為兩種類型: NSDictionary NSMutableDictionary

L ------ ?> 字典的初始化

dictionaryWithObjectsAndKeys:[];

字面量 : @{} ? {}中存入字典元素 ?,key : value 一一對應(yīng),元素之間用“ , ” 隔開

M ?------ > 不可變字典常用操作

1、獲取字典中鍵值對的個數(shù)

@property ( readonly ) NSUInteger count;

2、獲取字典中所有的鍵

@property ( readonly, copy ) NSArray *allKeys;

3、獲取字典中所有的值

@property ( readonly, copy ) NSArray *allValues

4、根據(jù)鍵獲得對應(yīng)的值

?- ( id ) objectForKey : ( NSString* ) anAttribute

N ------ > NSMutableArray 簡述

NSMutableArray 的父類是 NSDictionary

NSMutableArray 具有NSDictionary的所有方法, 同時 在其基礎(chǔ)上添加了增刪改操作


O ?------- ?> NSMutableArray 創(chuàng)建

dictionaryWithCapacity : ?( NSUInteger ) ...

字面量 : ?[ @{@"",@"",@...} mutableCopy ?]


P ------- > ?NSMutableDictionary 常用操作

1、字典中添加新的鍵值對 以及修改某一對鍵值對

?- ( void )setObject : ( id ) anObject ?forKey: ( id ) < NSCopying > aKey;

2、移除指定的鍵對應(yīng)的鍵值對

- ( void )removeObjectForKey : ( id ) aKey;

3、移除字典中所有的鍵值對

- ? ( void )allAllObjects;


Q------ ?> 集合類 的描述

集合 作為OC 的一個容器, 開發(fā)過程中使用范圍小。 OC 中分為 : NSSet 和 NSMutableSet 兩種

R ----- ?> 集合的特點

1、互異性 : 集合中不能存在兩個相同的對象

2、無序性 : 集合中的對象沒有順序, 先添加的對象不一定在集合的第一個位置, 后添加的也不一定在最后的位置

3、集合經(jīng)常用來處理重用問題

S ------ ?> NSSet 創(chuàng)建

setWithObjects:?

注意 : 不可變集合一旦創(chuàng)建,集合中的對象無法修改, 只能從集合中讀取對象 , 并且沒有快速創(chuàng)建集合對象的字面量

T ------ > NSSet 的常用操作

1、獲取集合中對象的個數(shù)

@property ( readonly ) NSUInteger count;

2、獲取集合中所有的對象

@property ?( readonly,copy ) NSArray *allObjects

3、從集合中取出一個對象

- ( id )anyObject;

4、判斷集合中是否包含一個指定的對象

- ( BOOL ) cotainsObject : ( id ) anObject

U --------- > NSMutableSet概述

NSMutableSet ?( 可變集合 ) 的父類是NSSet, 具有 NSSet所有的方法, 在此基礎(chǔ)上添加了增刪的操作

V - ---- ?>NSMutableSet 創(chuàng)建

setWithCapacity :?

W ----- >NSMutableSet常見操作

1、 添加一個對象

- ( void ) addAnObject : ( id ) object;

2、移除一個對象

- ( void )removeAnObject : ( id ) object;

3、移除所有對象

- ( void )removeAllObjects;


X ?--------- >小結(jié)

1、OC 為我們提供了三大容器 : 數(shù)組、字典、集合,三個集合存儲的都是對象類型

2、數(shù)組 : 是一個有序的集合, 當我們需要管理有序的一組對象的時候需要使用數(shù)組

3、字典:是一個無序的集合, 里面是一個一個的鍵值對, 我們獲取 數(shù)據(jù)的時候需要通過對應(yīng)的 key 來操作,并且 key 在字典中是唯一的

4、集合: 集合是一個無序的容器,并且容器中的對象不能夠重復(fù)

5、可變?nèi)萜黝悓ο笫遣豢勺內(nèi)萜黝悓ο蟮淖宇?, 在擁有父類功能的基礎(chǔ)上, 擴充了對原有對象的增刪改操作

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 一、數(shù)組類 數(shù)組是一個有序的集合,OC中的數(shù)組只能儲存對象類型,但是對于對象的類型沒有限制。 通過下標訪問數(shù)組元素...
    劉可愛最可愛閱讀 369評論 0 0
  • 1. 熟悉Git的基本流程 git clone git add -A git commit -m " " git ...
    9bf19a4010ab閱讀 1,669評論 0 2
  • 下面是我最近兩年學(xué)習(xí)OC中的一些基礎(chǔ)知識,對于學(xué)習(xí)OC基礎(chǔ)知識的人可能有些幫助,拿出來分享一下,還是那句話不喜勿噴...
    小小趙紙農(nóng)閱讀 2,625評論 1 7
  • 大綱 26.Protocol-協(xié)議 27.delegate-代理 28.Foundation框架介紹 29.NSS...
    天天想念閱讀 1,373評論 0 2
  • 夜涼如水,皎潔的月光穿過層層的阻礙,溫柔地照拂在床上已然入睡的少年臉上。只是少年好像睡得不怎么踏實,時而蹙眉,時而...
    大樹小戚閱讀 251評論 0 0