美文网首页
iOS 给dictionary字典排序

iOS 给dictionary字典排序

作者: rockyMJ | 来源:发表于2016-08-29 15:53 被阅读662次

前提

字典的key或者value是数字的字符串.例如:

                    {"陕西省": "610000",
                    "河南省": "410000",
                    "江西省": "360000",
                    "海南省": "460000",
                    "上海市": "310000",
                    "吉林省": "220000",
                    "其他": "990000",
                    "安徽省": "340000",
                    "天津市": "120000",
                    "河北省": "130000",
                    "重庆市": "500000",
                    "甘肃省": "620000"}
swift
func getOrderArray(options: AnyObject?) -> [String]{
        let optionType = options as! [String:String]
根据option传的是value或key进行排序
        let optionTypeArray = TKOnlineTool.DictWithOption(optionType, option: .VALUE)
        var IdType = [String]()
遍历字典数组,将key重新组成一个有顺序的数组
        for (key , _) in optionTypeArray {
            IdType.append(key)
        }
        return IdType
    }
/**
     对字典进行排序
     
     - parameter dict:   需要排序的字典
     - parameter option: 根据key或value排序
     
     - returns: 排序后的字典数组
     */
    class func DictWithOption(dict : [String : String],option : SortOption) ->[(String, String)] {
        //排序后得到的字典数组
        var sortResult = [(String,String)]()
        switch option {
        case .KEY:
            sortResult = dict.sort { $0.0 < $1.0 }
        case .VALUE:
            sortResult = dict.sort { $0.1 < $1.1 }
        }
        //从排序后的数据中获取新的字典数组
        return sortResult
    }

OC
NSDictionary *selfCard = @{
        @"陕西省": @"610000",
        @"河南省": @"410000",
        @"江西省": @"360000",
        @"海南省": @"460000",
        @"上海市": @"哈哈",
        @"吉林省": @"220000",
        @"其他": @"990000",
        @"安徽省": @"340000",
        @"天津市": @"120000",
        @"河北省": @"130000",
        @"重庆市": @"500000",
        @"甘肃省": @"620000"};
NSArray *selfPokerKeySort = [NSArray array];
    selfPokerKeySort = [selfCard keysSortedByValueUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {
        NSLog(@"%@----%@",obj1,obj2);
//        NSComparisonResult result = [obj1 compare:obj2];
//        return result == NSOrderedDescending;
        int v1 = [obj1 intValue];
        int v2 = [obj2 intValue];
        if (v1 < v2)
            return NSOrderedAscending;
        else if (v1 > v2)
            return NSOrderedDescending;
        else
            return NSOrderedSame;
    }];
//排序好的key,组成的数组
    NSLog(@"%@",selfPokerKeySort);

相关文章

  • iOS 给dictionary字典排序

    前提 字典的key或者value是数字的字符串.例如: swift OC

  • day3Python

    一、Dictionary字典 语法格式:{键:值,键:值,... ...}实例: 字典值的添加 当给原字典添加了一...

  • Swift第二篇(字典&集合)

    Swift字典:Dictionary Swift中的字典Dictionary与Foundation中的NSDict...

  • 字典&&列表&&元组

    {字典}&&[列表]&&(元组) 字典(dictionary) 创建dictionary:每个元素都是一个key-...

  • Python 字典(Dictionary)(1)

    Python 字典(Dictionary) 访问字典里的值

  • 字典-Dictionary

    这里要讲到的字典也是一种数据类型,你别理解成新华字典或者成语字典就Ok了,它其实是能够存储任何数据类型的对象......

  • 字典dictionary

    字典(dictionary) 字典可看作是键(key)与值(value)之间的一系列一一对应关系。 字典和列表相似...

  • dictionary字典

    获取字典指定key的值 dict.get(key[, default])VSdict[key] dict.get(...

  • Dictionary字典

    初始化 获取值 修改值 删除值 获取网址的key,value值

  • 字典(Dictionary)

    本文学习参考:http://www.runoob.com/python/python-dictionary.htm...

网友评论

      本文标题:iOS 给dictionary字典排序

      本文链接:https://www.haomeiwen.com/subject/lhixettx.html