Go切片去掉重复元素
1.Go切片去掉重复元素
如果传入的是string类型:
//slice去重
func removeRepByMap(slc []string) []string {
result := []string{} //存放返回的不重复切片
tempMap := map[string]byte{} // 存放不重复主键
for _, e := range slc {
l := len(tempMap)
tempMap[e] = 0 //当e存在于tempMap中时,再次添加是添加不进去的,,因为key不允许重复
//如果上一行添加成功,那么长度发生变化且此时元素一定不重复
if len(tempMap) != l { // 加入map后,map长度变化,则元素不重复
result = append(result, e) //当元素不重复时,将元素添加到切片result中
}
}
return result
}
如果传入的是int类型:
//slice去重
func removeRepByMap(slc []int) []int {
result := []int{} //存放返回的不重复切片
tempMap := map[int]byte{} // 存放不重复主键
for _, e := range slc {
l := len(tempMap)
tempMap[e] = 0 //当e存在于tempMap中时,再次添加是添加不进去的,,因为key不允许重复
//如果上一行添加成功,那么长度发生变化且此时元素一定不重复
if len(tempMap) != l { // 加入map后,map长度变化,则元素不重复
result = append(result, e) //当元素不重复时,将元素添加到切片result中
}
}
return result
}
当然如果传入的是其它类型,把对应类型改掉即可
Go切片去掉重复元素的更多相关文章
- list去掉重复元素
需求: 有list 里面含有重复元素,要求去掉重复元素: solution 1: >>> a [1, 2, 2, 1, 3, 4, 5, 6, 5] >>> set ...
- JS数组去掉重复元素
JS数组去掉重复元素,这里提供3中写法. var arr =[1,2,3,4,5,6,3,4,7,2,4,1,8]; 输出:[1,2,3,4,5,6,7,8]; 1.使用indexOf() arr.i ...
- python 去掉重复元素 学到再添加
1. python 内置函数 set(可迭代对象) 返回无重复元素的集合.如在分类中,classification为类别数组 set(classification)为类别数 2.numpy np.un ...
- JS - 给数组的原型添加去掉重复元素的distinct方法
/* 调用完该方法,原数组只留下非重复的数据 返回一个数组,里面是依次出现的重复元素 */Array.prototype.distinct = function () { var removeA ...
- python list 去掉重复元素
貌似用遍历最方便. http://www.cnblogs.com/tudas/p/python-delete-duplicate-element-from-list.html
- 去掉Arraylist集合中的重复元素
package cn.collection; import java.util.ArrayList; import java.util.Iterator; import java.util.Scann ...
- java代码实现将集合中的重复元素去掉
package com.loaderman.test; import java.util.ArrayList; import java.util.LinkedHashSet; import java. ...
- 去掉有序数组中的重复元素 c/c++
去掉有序数组中的重复元素: int RemoveDuplates(int A[], int nCnt) { ; ; , j = ; i < nCnt && j < nCnt ...
- C# 去掉List重复元素的方法
因为用到list,要去除重复数据,尝试了几种方法.记录于此... 测试数据: List<string> li1 = new List<string> { "8&quo ...
随机推荐
- 由导入paramkio包失败,而pip list又能查到此包,而引出的:离线安装python第三方库的实用方法:解决公司内网,服务器/电脑不能上网却需要安装python三方库问题(下:Linux环境中)
问题描述: 公司的Linux服务器是内网,今天要实现某个功能,会用到python控制ssh,需要安装一个Paramkio库,和上一篇一样,仅仅依靠Pypi上下载下来的离线.whl安装包是不行的,lin ...
- oracle体系结构简介
oracle体系结构简介 一.物理存储结构 1.数据文件 存放数据库数据,以dbf为扩展名.将数据放在多个数据文件中, 再将数据文件分放在不同的硬盘中,可以提高存取速度. ...
- JVM-2-JVM结构
什么是JVM JVM是可运行Java代码的假想计算机 (或者理解为一种规范),包括一套字节码指令集.一组寄存器.一个栈.一个垃圾回收,堆 和 一个存储方法域.JVM是运行在操作系统之上的 ...
- elementUI+Vue实现管理系统的登录页面
<template> <div class="maxbox"> <div id="appp"> <vue-partic ...
- poj 1979 Red and Black 题解《挑战程序设计竞赛》
地址 http://poj.org/problem?id=1979 Description There is a rectangular room, covered with square tiles ...
- 80道最新java基础部分面试题(五)
自己整理的面试题,希望可以帮到大家,需要更多资料的可以私信我哦,大家一起学习进步! 48.同步和异步有何异同,在什么情况下分别使用他们?举例说明. 如果数据将在线程间共享.例如正在写的数据以后可能被 ...
- ajax成功请求到后台(进断点),但是浏览器控制台报404错误!
向Controller发送请求,进入断点且走到最后一步,中间也没有报错.但是,结果没有成功响应,浏览器控制台报404. 原因:忘记加@ResponseBody,spring对返回值映射时找不到对应的视 ...
- Educational Codeforces Round 76 (Rated for Div. 2) B. Magic Stick 水题
B. Magic Stick Recently Petya walked in the forest and found a magic stick. Since Petya really likes ...
- 暑期班--JAVA无敌课程---第一天-Day01-----Java基础
1.Java发展历史 1.1Games Golsing Java创始人 2.What is JDK 3.记本本开发第一个Java程序 巴拉巴拉 巴拉巴拉 巴拉巴拉 巴拉巴拉 巴拉巴拉 巴拉巴拉 巴拉巴 ...
- 实例属性和方法的动态处理(__getattr__)
正常情况下,当调用类的方法或属性时,如果不存在,就会报错 要避免这个错误,除了可以加上那个要调用但不存在的属性外,Python还有另一个机制,那就是写一个__getattr__()方法,动态返回一个属 ...