iOS學習筆記之字典排序

2021-08-02 10:48:07 字數 1304 閱讀 8417

有時候拼接引數會用到字典傳過來的引數而且是要排序的,下面我們看看應該怎麼去做!
nsdictionary *params = @;
這個引數字典中一共有4個key:name、hometown、userid、phone。

我們該怎麼樣把這四個字串按公升序排列呢?

首先我們定義乙個陣列,儲存字典中的所有key值:

nsarray *keyarray = [params allkeys];
接下來我們定義乙個排序陣列,儲存排序好之後的key值

nsarray *sortarray = [keyarray sortedarrayusingcomparator:^nscomparisonresult(id  _nonnull obj1, id  _nonnull obj2) ];
sortedarrayusingcomparator方法是蘋果為我們提供的乙個陣列排序方法,利用block語法來完成排序功能。

而這時,我們排序好的key值,已經按順序儲存在sortarray陣列中,這時我們再建立乙個陣列,來按公升序儲存key對應的value,通過遍歷sortarray的方法。

nsmutablearray *valuearray = [nsmutablearray array];

for (nsstring *sortstring in sortarray)

現在我們有兩個陣列,分別對應公升序排序的key和value,所以再建立乙個keyvalue的陣列來儲存每乙個key和value的格式。

nsmutablearray *signarray = [nsmutablearray array];

for (int i = 0; i < sortarray.count; i++)

最後的一步,就是用「,」把每個字串拼接起來,很簡單。

nsstring *sign = [signarray componentsjoinedbystring:@","];

return

sign;

這時,字串sign裡儲存的就是要求我們完成的,沒有進行md5校驗的簽名字串了,可以列印出來看一下。

[24923:3184830]

hometown

:dongying,name

:linh,phone

:18814868888,userid

:330909199301271234

iOS學習筆記 iOS演算法 四 之氣泡排序

氣泡排序法的基本思想 以公升序為例 含有n個元素的陣列原則上要進行n 1次排序。對於每一躺的排序,從第乙個數開始,依次比較前乙個數與後乙個數的大小。如果前乙個數比後乙個數大,則進行交換。這樣一輪過後,最大的數將會出現稱為最末位的陣列元素。第二輪則去掉最後乙個數,對前n 1個數再按照上面的步驟找出最大...

Python學習筆記之字典

字典 dict 是python中的基本資料型別之一,是可變的無序集合,以鍵值對為基本元素的可以儲存各種資料型別的集合,用 表示字典的開始和結束,元素之間用,逗號分隔,和json資料類似。字典中的元素由鍵 key 和值 value 組成,中間用冒號做分隔。注意,字典中的鍵是不可變型別。以下是乙個典型的...

Python學習筆記之字典

一 建立和使用字典 1 建立字典 phonebook 2 dict,通過對映建立字典 items name gumby age 34 d dict items d 顯示 dict,通過關鍵字建立字典 d dict name gumby age 34 d 顯示 3 字典格式化字串 phonebook ...