提到去重,第一反应就是for或while循环来遍历处理.

然后有了几种思路:

1) 两个循环嵌套 对比 然后去重:

但是这种方法会数据丢失,

arr为要去重的数组

  for (int i=; i<arr.count; i++) {
for(int j=;j<arr.count;j++)
if([arr[i]==arr[j]]){
[arr removeObjectAtIndex:j];
}
}

2) 然后就是 第 i 个 元素 与  第 i+1 个元素比对 去重

 for (int i=; i<arr.count-; i++) {
if([arr[i] isEqualToString:arr[i+]]){
[arr removeObjectAtIndex:i];
i--; //因为去除一个元素后arr.count也发生了改变,所以这里也要将i--
}
}

上面这种方法大致可以去重了,但是,如果最后一位元素与第一位元素相同,那么,你也是去不掉..

3)完美去重的方法:

所以在这里,我们新建一个可变数组,然后将原数组做一个isEqualTo的判断,再添加进新数组.

    NSMutableArray *newArr = [NSMutableArray array];
for (int i=; i<arr.count-; i++) {
if([newArr containsObject:[arr objectAtIndex:i]]==){
[newArr addObject:[arr objectAtIndex:i]];
}
}

关于NSArray的去重的更多相关文章

  1. iOS 基础之NSArray数组去重

    1.面试题 现在有一个数组arr1,它里面存储的字符串分别为@“zhangsan”@“lisi”@“wangwu”@“lisi”@“zhangsan”,请将它去重后赋值给可变数组arr2输出为:@“z ...

  2. NSArray NSMutableArray

    NSArray 或者 NSMUtableArray 去除重复的数据: 原来集合操作可以通过valueForKeyPath来实现的,去重可以一行代码实现: [array valueForKeyPath: ...

  3. iOS数组的去重,判空,删除元素,删除重复元素 model排序 等

    一: 去重 有时需要将NSArray中去除重复的元素,而存在NSArray中的元素不一定都是NSString类型.今天想了想,加上朋友的帮助,想到两种解决办法,先分述如下. 1.利用NSDiction ...

  4. iOS 数组的去重(普通的无序的去重和排序好的去重)

    本文转载至 http://blog.csdn.net/zhaopenghhhhhh/article/details/24972645 有时需要将NSArray中去除重复的元素,而存在NSArray中的 ...

  5. iOS NSSet 学习 “无序数组” & 去重 案例

    “NSSet,NSMutableSet,和NSCountedSet类声明编程接口对象的无序集合(散列存储:在内存中的存储位置不连续). 而NSArray,NSDictionary类声明编程接口对象的有 ...

  6. NSPredicate 应用 --数组如何一键去重,如何一行代码筛选,请慢慢看来

    1.去重 NSArray * uniqueVarValueArray= [origArray valueForKeyPath:@"@distinctUnionOfObjects.VarKey ...

  7. iOS数组去重的方法,超级简单

    //最近新发现的一个数组去重,用不着循环,一句代码搞定 //去除数组中重复的 NSArray *oldArr = @[@"1",@"2",@"3&qu ...

  8. iOS开发 NSArray技巧

    sh数组快速倒序 NSArray *arr = @[@"first",@"second"]; arr = arr.reverseObjectEnumerator ...

  9. 数组中存放model去重

    在这个项目中出现"添加model数据"数组重复的情况,这就涉及到数组去重的问题了...... 1. 一开始使用的最笨的方法: 依次循环两个数组(原有的数组,选择的数组),双重for ...

随机推荐

  1. [转]自定义ASP.NET MVC JsonResult序列化结果

    本文转自:http://blog.163.com/luckcq@yeah/blog/static/17174770720121293437119/ 最近项目中前台页面使用EasyUI的jQuery插件 ...

  2. Mysql框架---HMySql

    Java 数据库框架 在我学习java数据库框架的时候,第一个用的是Hibernate,但是到现在,我可能已经快忘记它了,毕竟快两年没有碰的东西,后来一直再用MyBatis.因为它简单. 但是本文不会 ...

  3. AJPFX关于StringBuffer,StringBuilder类 总结(一)

    StringBuffer,StringBuilder类 StringBuffer是同步的,数据安全,效率低;StringBuilder是不同步的,数据不安全,效率高 StringBuffer:概述1) ...

  4. pageHelper分页插件失效问题

    在bootstrap中引用pageHelper进行页面分页<dependency><groupId>com.github.pagehelper</groupId>& ...

  5. Android Studio3.0 Error:Execution failed for task ':app:javaPreCompileDebug' 错误

    Error:Execution failed for task ':app:javaPreCompileDebug'. > Annotation processors must be expli ...

  6. (转)Spring提供的CharacterEncoding和OpenSessionInView功能

    http://blog.csdn.net/yerenyuan_pku/article/details/52902282 前面我们以一种更加优雅的方式集成了Spring4.2.5+Hibernate4. ...

  7. java 随机数 <%=System.currentTimeMillis() %>

    java 随机数<c:set var="version" value="<%=System.currentTimeMillis() %>"/& ...

  8. 筛选法 || POJ 1356 Prime Land

    英文题读不懂题==质数幂的形式给你一个数 把它减一再用质数幂的形式表示出来 *解法:质数从小到大模拟除一遍,输入有点别扭 #include <iostream> #include < ...

  9. Swift中的init方法

    摘要:Swift有着超级严格的初始化方法,不仅强化了designated初始化方法的地位,所有不加修饰的init方法都需要在方法中确保非Optional的实例变量被赋值初始化,而在子类中,也强制调用s ...

  10. 448. Find All Numbers Disappeared in an Array@python

    Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and ot ...