Go--统计数组中重复的元素及重复次数
代码:
package main import ( "fmt" ) func main() { //创建有重复数值的数组 a1 := []int{1, 2, 3, 1, 4, 5, 2} a2 := []string{"t1", "t2", "t1", "t3", "t5", "t3"} //创建map s1 := make(map[int]int) s2 := make(map[string]int) //遍历数组,将数组的元素值与map的键做对比 for _, v := range a1 { //判断键是否存在 value, ok := map[key] ,若存在,计数器+1,若不存在,则插入并将计数器置为1 if _, ok := s1[v]; ok { s1[v]++ } else { s1[v] = 1 } } for k, v := range s1 { fmt.Printf("%d出现了%d次\n", k, v) } fmt.Println("s1:", s1) fmt.Println() //遍历数组,将数组的元素值与map的键做对比 for _, v := range a2 { //判断键是否存在 value, ok := map[key] ;若存在,计数器+1,若不存在,则插入并将计数器置为1 if _, ok := s2[v]; ok { s2[v]++ } else { s2[v] = 1 } } for k, v := range s2 { fmt.Printf("%s出现了%d次\n", k, v) } fmt.Println("s2:", s2) }
输出结果:
1出现了2次 2出现了2次 3出现了1次 4出现了1次 5出现了1次 s1: map[1:2 2:2 3:1 4:1 5:1] t1出现了2次 t2出现了1次 t3出现了2次 t5出现了1次 s2: map[t1:2 t2:1 t3:2 t5:1] 进程 已完成,退出代码为 0