//第一種,利用陣列的sortedarrayusingcomparator呼叫 nscomparator ,obj1和obj2指的陣列中的物件
//陣列進行排序
// nscomparator cpmtr = ^(id obj1, id obj2)
// //
公升序// if ([obj1 integervalue] < [obj2 integervalue])
// return (nscomparisonresult)nsorderedsame;
// };
nsarray
*sortarray = [[
nsarray
alloc
] initwithobjects
:@"1"
,@"3"
,@"4"
,@"7"
,@"8"
,@"2"
,@"6"
,@"5"
,@"13"
,@"15"
,@"12"
,@"20"
,@"28"
,@""
,nil
];//
排序前nsmutablestring
*outputbefore = [[
nsmutablestring
alloc
] init
];for
(nsstring
*str
insortarray)
nslog(@"
排序前:%@"
,outputbefore);
// nsarray *array = [sortarray sortedarrayusingcomparator:cpmtr];
nsarray
*arr = [sortarray
sortedarrayusingcomparator
:^nscomparisonresult(id
_nonnull
obj1,
id_nonnull
obj2)
//公升序
if([obj1
integervalue
] < [obj2
integervalue
]) return
(nscomparisonresult
)nsorderedsame
;}];
nslog
(@"===%@"
,arr);
nsmutablestring
*outputafter = [[
nsmutablestring
alloc
] init
];for
(nsstring
*str
inarr)
nslog(@"
排序後:%@"
,outputafter);
第二種 排序方法 利用sortedarrayusingfunction 呼叫 對應方法customsort,這個方法中的obj1和obj2分別是指數組中的物件。
nsinteger customsort(id obj1, id obj2,void* context)
if ([obj1 integervalue] < [obj2 integervalue])
return (nscomparisonresult)nsorderedsame;
}nsarray *array = [sortarray sortedarrayusingfunction:customsort context:nil];
nslog
(@"**********=********************==="
);nsmutablearray
*data1 = [
nsmutablearray
new];
for(
inti =
0; i <
10; i++)
nsmutablestring
*outputbefore3 = [[
nsmutablestring
alloc
] init
];for
(model
*str
indata1)
nslog(@"
排序前:%@"
,outputbefore3);
// [data1 sortwithoptions:nssortconcurrent usingcomparator:^nscomparisonresult(model* obj1, model* obj2)
// //
公升序// if ([obj1.age integervalue] < [obj2.age integervalue])
// return (nscomparisonresult)nsorderedsame;
// }];
[data1
sortusingcomparator
:^nscomparisonresult
(model
* obj1,
model
* obj2)
//公升序
if([obj1.
ageintegervalue
] < [obj2.
ageintegervalue
]) return
(nscomparisonresult
)nsorderedsame
;}];
for(
model
*str
indata1)
第三種 利用sortusingdescriptors呼叫nssortdescriptor
nsmutablearray
*data = [
nsmutablearray
new];
for(
inti =
0; i <
10; i++)
nsmutablestring
*outputbefore1 = [[
nsmutablestring
alloc
] init
];for
(studentsobject
*str
indata)
nslog(@"
排序前:%@"
,outputbefore1);
//按照字母排序
// nssortdescriptor *sortdescriptor = [nssortdescriptor sortdescriptorwithkey:@"name" ascending:yes];
//按照數字排序
nssortdescriptor
*sortdesriptor2 = [
nssortdescriptor
sortdescriptorwithkey
:@"age"
ascending:no
];// nsarray *sorts = [[nsarray alloc]initwithobjects:&sortdescriptor count:1];
nsarray
*sorts = [
nsarray
arraywithobjects
:sortdesriptor2,
nil];
nsarray
*arr1 = [data
sortedarrayusingdescriptors
:sorts];
nslog
(@"===%@"
,sorts);
nslog
(@"*****>>>%@"
,arr1);
nsmutablestring
*outputafter = [[
nsmutablestring
alloc
] init
];for
(studentsobject
*str
inarr1)
nslog(@"
排序後:%@"
,outputafter);
IOS幾種簡單有效的陣列排序方法
第一種,利用陣列的sortedarrayusingcomparator呼叫 nscomparator obj1和obj2指的陣列中的物件 nscomparator cmptr id obj1,id obj2 if obj1 integervalue obj2 integervalue return ...
ios的幾種簡單有效的陣列排序方法
第一種,利用陣列的sortedarrayusingcomparator呼叫 nscomparator obj1和obj2指的陣列中的物件 nscomparator cmptr id obj1,id obj2 if obj1 integervalue obj2 integervalue return ...
mysql 幾種排序 MySql的幾種排序方式
資料排序的情況很常見,今天介紹一下mysql的幾種排序方式,是我最近有使用到的,希望能對大家有所幫助。這裡先建立一張普通的表,create table test1 id bigint 20 not null auto increment,name varchar 50 not null,date t...