123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package global
- func CheckElementExists(a string, list []string) bool {
- for _, b := range list {
- if b == a {
- return true
- }
- }
- return false
- }
- func StringListCompare(list1, list2 []string) (isEqual bool, common, onlyList1, onlyList2 []string) {
- if len(list1) != len(list2) {
- isEqual = false
- }
- // 创建map来存储list1列表中的元素
- AMap := make(map[string]int)
- for _, item := range list1 {
- AMap[item]++
- }
- // 检查B列表中的元素是否在AMap中
- for _, item := range list2 {
- if count, exists := AMap[item]; !exists || count == 0 {
- isEqual = false
- }
- AMap[item]--
- }
- if !isEqual {
- // 创建一个map来存储A列表中的元素
- list1Map := make(map[string]struct{})
- for _, a := range list1 {
- list1Map[a] = struct{}{}
- }
- // 查找list2列表中存在但list1列表中不存在的元素
- for _, v := range list2 {
- if _, exists := list1Map[v]; !exists {
- onlyList2 = append(onlyList2, v)
- } else {
- common = append(common, v)
- }
- }
- // 创建一个map来存储B列表中的元素
- list2Map := make(map[string]struct{})
- for _, b := range list2 {
- list2Map[b] = struct{}{}
- }
- // 查找list1列表中存在但list2列表中不存在的元素
- for _, a := range list1 {
- if _, exists := list2Map[a]; !exists {
- onlyList1 = append(onlyList1, a)
- }
- }
- return
- }
- isEqual = true
- return
- }
|