删除切片重复内容

ints := []int{9, 1, 9, 4, 5, 5, 2, 3, 3, 2}

  从最简单的int切片开始,自己第一次想到的函数代码如下:

func UniqueInts(ints []int) []int {

	ms := map[int]int{}
	for _, i := range ints {
		ms[i] = i
	}

	var result []int
	for _, s := range ms {
		result = append(result, s)
	}
	return result
}

  算不上高明,胜在简单易读,之后找了下书上的源码,其代码如下:

func UniqueInts(slice []int) []int {

    seen := map[int]bool{} // == make(map[int]bool)

    unique := []int{}      // == make([]int, 0)

    for _, x := range slice {
        //查找map中的元素,如果不是重复的int则添加到map中
        if _, found := seen[x]; !found {
          //把元素添加到新的切片中,利用了map的特性,保证了不重复
            unique = append(unique, x)
            seen[x] = true
        }

    }
    return unique
}

  

时间: 2024-10-31 21:39:11

删除切片重复内容的相关文章

删除相邻重复的内容

1.思路:用正则表达式匹配,使用反向引用,替换.查找(.+?)\1 替换为 $1 (.+)\1 为什么不好?因为量词优先,+会尽可能地吃,然后又要一个一个吐出来,效率太差,使用(.+?)\1 取消量词优先,尽量少吃. (.*?)\1 为什么不好,因为.* 可以匹配没有字符的情况,.+ 要求至少有一个字符,既然是删除相邻重复的内容,当然要求至少有一个字符.2.删除相邻重复的行,可以转化为删除相邻重复的内容.只不过中间有一个换行符,如下:查找(.+?)(\r\n)\1 替换为 $1. 注意:这里千万

JavaSE中Collection集合框架学习笔记(2)——拒绝重复内容的Set和支持队列操作的Queue

前言:俗话说“金三银四铜五”,不知道我要在这段时间找工作会不会很艰难.不管了,工作三年之后就当给自己放个暑假. 面试当中Collection(集合)是基础重点.我在网上看了几篇讲Collection的文章,大多都是以罗列记忆点的形式书写的,没有谈论实现细节和逻辑原理.作为个人笔记无可厚非,但是并不利于他人学习.希望能通过这种比较“费劲”的讲解,帮助我自己.也帮助读者们更好地学习Java.掌握Java. 无论你跟我一样需要应聘,还是说在校学生学习Java基础,都对入门和进一步启发学习有所帮助.(关

用sql删除数据库重复的数据的方法

/***********************************************两个意义上的重复记录:1.是完全重复的记录,也即所有字段均重复的记录,2.是部分关键字段重复的记录,比如username字段重复,  而其他字段不一定重复或都重复可以忽略,这类重复  问题通常要求保留重复记录中的第一条记录************************************************/ /*1.数据完全重复(用到了一个临时表#Tmp)*/CREATE TABLE ad

删除相邻重复的行

notepad++ 删除相邻重复的行查找 (.+?)(\r\n)\1 替换为 \1 sed 删除重复行sed -nr '1h;1!H;${x;s/(.+)(\n)\1/\1/g;p}' num.txt-n 安静模式,sed 读取下一行之前,都会把模式空间的内容,打印到标准输出,-n取消这种打印.-r 支持扩展正则表达式1h;1!H; 把所有行放到保留空间$ 最后一行,对最后一行处理,然后交换模式空间与保留空间的内容,正则表达式替换掉相邻重复的行. sed好像不支持忽略量词优先,暂时不确定. aw

网站出现重复内容 百度收录重复页面怎么办

在搜索引擎收录中时我们可能会发现,同样的内容搜索引擎收录了不止一次,其中有“静态页面,也有动态或伪静态页面.看似增加了网站的收录量是好事,实则“重复内容”的收录对SEO优化并不好,最后所带来的结果,轻则重复快照被回收删除,重则直接影响网站权重. 今天为你详细分析: 1.为什么网站同一个页面会被重复收录? 2.重复收录对SEO优化有什么影响? 3.我们该如何应对网站重复收录的问题? 从以上的例子,我们可以看出网站的首页除了静态页面收录以外,还有很多后缀带“?qz_gdt=”的动态页面的收录,但打开

返回数组中的最大值和删除数组重复值-排序

//数组中最大值function getMax(arr){ //取该数组第一个值为最大值 var max=arr[0]; for(var i=0;i<arr.length;i++){ if(arr[i]>max){ max=arr[i] } } return max;} console.log(getMax([2,98,10,88])) /*--------------------------------------------------------------------*///删除数组重

Python练习题4(列表去重):[5,3,4,&#39;ok&#39;,4,3,&#39;abc&#39;,8,52,&#39;ok&#39;]去除列表中重复内容 方法一:使用set 方法二:不使用set,自己写方法

方法一:利用集合去重 1 list1 = [5,3,4,'ok',4,3,'abc',8,52,'ok'] 2 list1=list(set(list1)) 3 print(list1) 方法二:此方法略微冗余,先判断元素是否重复,再将重复元素提取并保存到新列表中,再for 新建的列表元素,删除原列表 1 def list_dup(ls): 2 list2 = [] 3 length = len(ls) #获取列表元素个数 4 for i in range(0,length-1): 5 for

javascript 笔试题之删除数组重复元素

笔试时紧张没写出来,静下心后发现简单的要死. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <head> <meta http-equiv="Content-Type" content=&quo

ASP.NET的SEO:使用.ashx文件&mdash;&mdash;排除重复内容

本系列目录 不同的链接指向的页面如果具有大量相同的内容,这种现象就会被称为"重复内容",如果一个网站的重复内容很多,搜索引擎就会认为这个网站的价值不高.所以我们应尽量避免各种重复内容. 动态网站的重复内容常常是由URL参数引起的,而URL重写会恶化这一现象(比较耐人寻味哟,呵呵).因为如果使用的是原始的URL参数的话,搜索引擎可能会进行适当的判断,而得知重复内容是由URL参数引起的,自动的进行相应的处理:而URL重写会掩盖URL参数,反而使得搜索引擎无法识别URL参数.比如: 原始的U