首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

iOS NSMutableDictionary 按 Value 排序:鍵值反轉與排序器

     編輯:程式設計綜合問答

問題

字典 {A=3, B=2, C=4} 需按值升序輸出 {B=2, A=3, C=4}。字典本身無序,需轉為數組排序。

實現

NSMutableDictionary *dict = [@{@"A": @3, @"B": @2, @"C": @4} mutableCopy];

// 1. 獲取所有鍵,按對應值排序
NSArray *sortedKeys = [dict keysSortedByValueUsingComparator:^NSComparisonResult(id obj1, id obj2) {
    NSNumber *v1 = (NSNumber *)obj1;
    NSNumber *v2 = (NSNumber *)obj2;
    return [v1 compare:v2]; // 升序
}];

// 2. 按排序後的鍵輸出
for (NSString *key in sortedKeys) {
    NSLog(@"%@ = %@", key, dict[key]);
}
// 輸出: B = 2, A = 3, C = 4

若需按值降序

return [v2 compare:v1]; // 交換參數順序

生成新有序字典(iOS 13+ 有序字典特性)

標準 NSDictionary 無序,若需保持順序可用 NSArray 存儲 (key, value) 元組,或使用第三方有序字典庫。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved