1. 程式人生 > >iOS 陣列的去重(普通的無序的去重和排序好的去重)

iOS 陣列的去重(普通的無序的去重和排序好的去重)

    NSArray *arr = @[@111,@222,@111];

    NSSet *set = [NSSet setWithArray:arr];

NSLog(@"%@",[set allObjects]);

輸出結果為:

2013-05-21 12:06:26.508 test1[4547:c07] (

    111,

    222

)

排序的去重

很多時候可能會遇到需要去除NSArray重複的元素,用了很多方法。

最方便快捷的是NSSet.但是NSSet去重後有時候陣列元素的順序會

打亂。於是換了另外一種方法如下:

    NSMutableArray

 *categoryArray = [[NSMutableArray allocinit];

    for (unsigned i = 0; i < [nameArray count]; i++){

        if ([categoryArray containsObject:[nameArray objectAtIndex:i]] == NO){

            [categoryArray addObject:[nameArray objectAtIndex:i]];

        }

    }

順序就不會亂了。


相關推薦

iOS 陣列(普通無序排序)

    NSArray *arr = @[@111,@222,@111];     NSSet *set = [NSSet setWithArray:arr]; NSLog(@"%@",[set allObjects]); 輸出結果為: 2013-05-21 12:06:26.508 test1

JAVA之HashSet(本身無序不重複,針對物件)

return id+":"+name;}//通過重寫這兩個方法實現物件的去重(eclipse可自動生成)@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + ((id == n

iOS陣列根據key或者類的屬性高階排序

方法一: NSArray *ary = @[@"a3",@"a1",@"a2",@"a10",@"a24"];NSLog(@"%@",ary); NSArray *myary = [ary sortedArrayUsingComparator:^(NSString * 

iOS陣列的方法,超級簡單

//最近新發現的一個數組去重,用不著迴圈,一句程式碼搞定 //去除陣列中重複的 NSArray *oldArr = @[@"1",@"2",@"3",@"4",@"5",@"6",@"2",@"3"]; NSArray *newarr = [oldArr valueForKeyPath:

陣列排序

一、常見的陣列排序方法: //冒泡 function bubbleSort(arr){ var r=1,i=0; for(r=1;r<arr.length;r++){ for(i=0;i<arr.length-1;i++){

js中陣列常用邏輯演算法(從大到小,從小到大排序等問題)

從小到大: // 從小到大順序排序 minSort (arr) { var min for (var i = 0; i < arr.length; i++) { for (var j = i; j < arr.le

陣列排序,可以用TreeSet直接做

明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了N個1到1000之間的隨機整數(N≤1000),對於其中重複的數字,只保留一個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成“去重”與“排序”的

java對一個int陣列進行排序

思路: 1、使用 HashSet 進行去重 2、將 HashSet 變為 TreeSet 3、使用 TreeSet 進行排序

陣列的四種方法,簡單理解

var b = [];for(var i = 0; i < arr.length; i++){for(var j = i+1; j < arr.length; j++){if (arr[i] == arr[j]) {j = false;break;};}if (j) {b.push(arr[i])

php多維陣列(針對任意的鍵值進行)--二維陣列的唯一--時間複雜度~O(n)

以二維陣列為例,來說明針對任意鍵值的去重,時間複雜度為~O(n),只用一個foreach迴圈: <?php $arr = array( '0'=>array(

es 數組,數組裏面的對象

pan fine logs 去重 some undefine all false true // 數組去重 { const arr = [1,2,3,4,1,23,5,2,3,5,6,7,8,undefined,null,null,undefined,true,fa

48.reduce排序,取最大值

prev col function red logs ngui ras value ber var arr = [2,4,1,-1,9] //取最大值 var maxValue = arr.reduce(function(a,b){ return a>

冒泡排序練習

document alert ++ write span font 冒泡 冒泡排序 doc 冒泡排序: var arr = [9, 8, 7, 6, 2, 1, 3, 5, 4] for(n = 0; n < arr.length; n++) { for(v

Java之大數據位圖法(無排序排序排序,數據壓縮)

align system 容器類 底層 修改 歸並排序 概念 ppr long 大數據位圖法(無重復排序,重復排序,去重復排序,數據壓縮)之Java實現 位圖法介紹 位圖的基本概念是用一個位(bit)來標記某個數據的存放狀態,由於采用了位為單位來存放數據,所以節

java8 排序

nbsp eof .com ring ima getname lar bool tid /* Worker{id=1, name=‘曹操‘, gender=1, age=50, salary=50.56, workType=領導} Worker{

(5).url,爬取分離

日誌 %s .com 生成 can 實例對象 記錄日誌 lse 定制 # 新建py文件:duplication.py # 我們新建了一個文件,專門用來去重。在scrapy源碼中已經把結構寫好了,我們只需復制粘貼過來 from scrapy.dupefilter impor

ES6 set方法對數組排序

har con head ons 之前 對數 rip each 麻煩 之前對數組做去重有很多方法,但大多比較麻煩,現在用ES6裏面的set方法非常方便 直接上代碼 <!doctype html> <html> <head> &l

MySQL—增刪改查,分組,連表,limit,union,alter,排序

MySQL增刪改查   在表格的增刪改查中,查的內容是最多的,包括group by ,join,limit,union,alter,排序都是服務於查的 #sql語句資料行操作補充 #增加: #insert into table_name(欄位1,欄位2)

array_uniquearray_flip 實現間的區別

方法一​:php有內建函式array_unique可以用來刪除陣列中的重複值 array_unique -- 移除陣列中重複的值 array_unique() 接受 array 作為輸入並返回沒有重複值的新陣列。 注意鍵名保留不變。array_unique()先將值作為字串排序,然後對每

java8實現列表,java8的stream lambda的使用例項

不管我們做安卓開發還是javaweb開發,有時候我們會對列表進行去重操作,所謂的列表資料重複,通常體現在列表集合資料中的id屬性相同。當然我們通過普通的方式也可以達到去重的效果。但是藉助java8新特性可以很方便的實現列表去重,下面就寫個小demo簡單的演示一下。