集合与可变集合排序(自己使用)

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //字符串进行排序
        NSArray *[email protected][@"b",@"a",@"c"];
        NSSortDescriptor *ns=[NSSortDescriptor sortDescriptorWithKey:nil ascending:YES];
        NSArray *B=[arr sortedArrayUsingDescriptors:@[ns]];
        NSLog(@"%@",B);

        //代码块排序
      NSArray *a=  [arr sortedArrayUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {
            return [obj1 compare:obj2];
      }];
        NSLog(@"%@",a);
        //选择器排序
        NSArray *C=[arr sortedArrayUsingSelector:@selector(compare:)];
        NSLog(@"%@",C);

    }
    return 0;

}

   //可变集合的排序
        NSMutableArray *arr=[NSMutableArray array];
        [arr addObject:@"v"];
        [arr addObject:@"b"];
        [arr addObject:@"A"];
        //选择器排序
        [arr sortUsingSelector:@selector(compare:)];
        NSLog(@"%@",arr);
        //代码块排序
        [arr sortUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {
            return [obj1 compare:obj2];
        }];
        NSLog(@"%@",arr);
        //描述信息排序
        NSSortDescriptor *nsSort=[NSSortDescriptor sortDescriptorWithKey:nil ascending:YES];
        [arr sortUsingDescriptors:@[nsSort]];
        NSLog(@"%@",arr);
时间: 2024-10-31 16:19:53

集合与可变集合排序(自己使用)的相关文章

NSSet -- 集合&&NSMutableSet -- 可变集合

// // main.m // OC05-task-03 // // Created by Xin the Great on 15-1-25. // Copyright (c) 2015年 Xin the Great. All rights reserved. // #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here.

集合、可变集合

<pre name="code" class="objc">int main(int argc, const char * argv[]) { @autoreleasepool { // 4 NSArray -> NSSet NSArray * array = @[@"one",@"two",@"three"]; NSSet * set = [NSSet setWithArray:arra

Immutable(不可变)集合

不可变集合,顾名思义就是说集合是不可被修改的.集合的数据项是在创建的时候提供,并且在整个生命周期中都不可改变. 为什么要用immutable对象?immutable对象有以下的优点: 1.对不可靠的客户代码库来说,它使用安全,可以在未受信任的类库中安全的使用这些对象 2.线程安全的:immutable对象在多线程下安全,没有竞态条件 3.不需要支持可变性, 可以尽量节省空间和时间的开销. 所有的不可变集合实现都比可变集合更加有效的利用内存 (analysis) 4.可以被使用为一个常量,并且期望

Guava学习笔记:Immutable(不可变)集合

不可变集合,顾名思义就是说集合是不可被修改的.集合的数据项是在创建的时候提供,并且在整个生命周期中都不可改变. 为什么要用immutable对象?immutable对象有以下的优点: 1.对不可靠的客户代码库来说,它使用安全,可以在未受信任的类库中安全的使用这些对象 2.线程安全的:immutable对象在多线程下安全,没有竞态条件 3.不需要支持可变性, 可以尽量节省空间和时间的开销. 所有的不可变集合实现都比可变集合更加有效的利用内存 (analysis) 4.可以被使用为一个常量,并且期望

【java代码之美】---guava之Immutable(不可变)集合

Immutable(不可变)集合 一.概述 guava是google的一个库,弥补了java语言的很多方面的不足,很多在java8中已有实现,暂时不展开.Collections是jdk提供的一个工具类. Guava中不可变对象和Collections工具类的unmodifiableSet/List/Map/etc的区别: 当Collections创建的不可变集合的wrapper类改变的时候,不可变集合也会改变,而Guava的Immutable集合保证确实是不可变的. 1.JDK中实现immuta

[Google Guava] 2.1-不可变集合

范例 01 public static final ImmutableSet<String> COLOR_NAMES = ImmutableSet.of( 02 "red", 03 "orange", 04 "yellow", 05 "green", 06 "blue", 07 "purple"); 08 09 class Foo { 10 Set<Bar> ba

Guava学习笔记:guava的不可变集合

Guava学习笔记:guava的不可变集合 不可变集合的意义 不可变对象有很多优点,包括: 当对象被不可信的库调用时,不可变形式是安全的: 不可变对象被多个线程调用时,不存在竞态条件问题 不可变集合不需要考虑变化,因此可以节省时间和空间.所有不可变的集合都比它们的可变形式有更好的内存利用率(分析和测试细节): 不可变对象因为有固定不变,可以作为常量来安全使用. 创建对象的不可变拷贝是一项很好的防御性编程技巧.Guava为所有JDK标准集合类型和Guava新集合类型都提供了简单易用的不可变版本. 

[Guava学习笔记]Collections: 不可变集合, 新集合类型

不可变集合 不接受null值. 创建:ImmutableSet.copyOf(set); ImmutableMap.of(“a”, 1, “b”, 2); public static final ImmutableSet<Color> GOOGLE_COLORS = ImmutableSet.<Color>builder() .addAll(WEBSAFE_COLORS) .add(new Color(0, 191, 255)) .build(); 可以有序(如ImmutableS

洗礼灵魂,修炼python(7)--元组,集合,不可变集合

前面已经把列表的基本用法讲解完 接着讲python的几大核心之--元组(tuple) 1.什么是元组? 类似列表,但为不可变对象,之前提到列表是可变对象,所谓可变对象就是支持原处修改,并且在修改前后对应的内存空间里的id依然不变,而不可变对象就是不支持原处修改,得重新赋值才行,但在重新赋值的时候,内存ID已经发生改变. 元组的特征是什么呢?下面会解释! 2.创建元组的两种方式: 注意:元组的特征是()没错,但是光有小括号是不行的 比如创建一个空的元组: 没有问题是吧,创建一个只有一个元素的元组呢