美文网首页
数组中重复元素的处理

数组中重复元素的处理

作者: 冰霜海胆 | 来源:发表于2017-08-16 16:46 被阅读10次

1、取出数组中重复的元素(不重复的不提取,合并重复的元素)

let datas = [1, 2, 3, 3, 2, 1, 1, 1, 2, 3, 4]
let duplicate = Set(datas.filter({ (number) in datas.filter({ $0 == number }).count > 1 }))

//  [2, 3, 1]

2、合并重复的元素 (不重复的也提取)

let datas = [1, 2, 3, 3, 2, 1, 1, 1, 2, 3, 4]
Set(datas)

//  [2, 4, 3, 1]

3、剔除数组中重复的元素

let datas = [1, 2, 3, 3, 2, 1, 1, 1, 2, 3, 4]
let different = Set(datas).filter({ (number) in datas.filter({ $0 == number }).count == 1 })

//  [4]

4、将重复的元素提取出来,生成新的数组

let datas = [1, 2, 3, 3, 2, 1, 1, 1, 2, 3, 4]
let newArray = Set(datas).map({ (number) in datas.filter({ $0 == number }) })

//  [[2, 2, 2], [4], [3, 3, 3], [1, 1, 1, 1]]

如果想要保留顺序,那么这么做:

let datas = [3, 1, 2, 3, 3, 2, 1, 1, 1, 2, 3, 4]

var groupped: [[Int]] = []
datas.enumerated().forEach { (index, element) in
    if let index = groupped.index(where: { $0.last == element }) {
        groupped[index].append(element)
    } else {
        groupped.append([element])
    }
}
//  [[3, 3, 3, 3], [1, 1, 1, 1], [2, 2, 2], [4]]

相关文章

  • 2018-01-18

    数组去重 去除数组中重复的元素的原理:查看该元素在当前数组中是否存在,若存在,则跳过该元素,对其不做任何处理;若不...

  • 数组中重复元素的处理

    1、取出数组中重复的元素(不重复的不提取,合并重复的元素) 2、合并重复的元素 (不重复的也提取) 3、剔除数组中...

  • iOS-Code Snippet

    找出数组中重复的元素

  • 26. Remove Duplicates from Sorte

    从数组中删除重复元素,返回无重复长度的数组,要使用in place算法,把返回的元素填入重复的位置即可

  • 数组

    1. 去除数组中的重复元素 题目 已知一个已经排序的数组,去除数组中的重复元素,返回数组的长度。 思路 使用双指针...

  • javaScript中处理数组中重复元素的办法

    以下方法自己都已经进行简单测试并且通过,需要的朋友可以直接拷贝使用!? 一、获取数组中相同元素的下标 二、将数组中...

  • iOS 从数组随机取元素

    数组随机取元素 — 不考虑重复情况 数组随机取元素 — 去除重复元素

  • 数组中随机取出N个重复或不重复的元素

    1.数组中随机取出三个元素(有可能重复) 2.数组中随机取出不重复的三个元素,NSMutableSet中无论怎么添...

  • 数组去重

    在我们开发中经常遇到一种情况---数组中有重复的元素,但我们并不希望数组中的元素重复出现。那我们就需要删除数组中重...

  • LeetCode: 存在重复元素

    存在重复元素 English Description 给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中...

网友评论

      本文标题:数组中重复元素的处理

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