deduplication.go 880 B

1234567891011121314151617181920212223242526272829303132333435
  1. package util
  2. // RemoveRepByMap 通过map主键唯一的特性过滤重复元素
  3. func RemoveRepByMap(slc []int64) []int64 {
  4. if len(slc) == 0 {
  5. return slc
  6. }
  7. var result []int64
  8. tempMap := map[int64]byte{} // 存放不重复主键
  9. for _, e := range slc {
  10. l := len(tempMap)
  11. tempMap[e] = 0
  12. if len(tempMap) != l { // 加入map后,map长度变化,则元素不重复
  13. result = append(result, e)
  14. }
  15. }
  16. return result
  17. }
  18. // RemoveIntRepByMap 通过map主键唯一的特性过滤重复元素
  19. func RemoveIntRepByMap(slc []int) []int {
  20. if len(slc) == 0 {
  21. return slc
  22. }
  23. var result []int
  24. tempMap := map[int]byte{} // 存放不重复主键
  25. for _, e := range slc {
  26. l := len(tempMap)
  27. tempMap[e] = 0
  28. if len(tempMap) != l { // 加入map后,map长度变化,则元素不重复
  29. result = append(result, e)
  30. }
  31. }
  32. return result
  33. }