首页 > 其他分享 >golang 求出这两个对象数组的2个差集,即存在其中一个数组,但是不存在于另一个数组

golang 求出这两个对象数组的2个差集,即存在其中一个数组,但是不存在于另一个数组

时间:2023-09-30 16:23:41浏览次数:44  
标签:s2 fmt Object 差集 golang item 数组 diff

代码来自 chatgpt

package main

import (
	"fmt"
	"reflect"
)

type Object struct {
	ID int
}

func main() {
	a := []Object{{1}, {2}, {3}}
	b := []Object{{2}, {3}, {4}}

	diffAB := diff(a, b)
	diffBA := diff(b, a)

	fmt.Println("In A not in B: ", diffAB)
	fmt.Println("In B not in A: ", diffBA)
}

// diff 函数找出在 s1 中存在,但在 s2 中不存在的元素
func diff(s1, s2 []Object) (diffSlice []Object) {
	mapS2 := make(map[int]bool)

	for _, item := range s2 {
		mapS2[item.ID] = true
	}

	for _, item := range s1 {
		if _, found := mapS2[item.ID]; !found {
			diffSlice = append(diffSlice, item)
		}
	}
	
	return
}

标签:s2,fmt,Object,差集,golang,item,数组,diff
From: https://www.cnblogs.com/hi3254014978/p/17737933.html

相关文章

  • 2023-09-30:用go语言,给你一个整数数组 nums 和一个整数 k 。 nums 仅包含 0 和 1, 每一
    2023-09-30:用go语言,给你一个整数数组nums和一个整数k。nums仅包含0和1,每一次移动,你可以选择相邻两个数字并将它们交换。请你返回使nums中包含k个连续1的最少交换次数。输入:nums=[1,0,0,1,0,1],k=2。输出:1。来自左程云。答案2023-09-30:步骤描述:1.......
  • 【数据结构】线性表的数组描述和链式描述
    1.线性表抽象类#pragmaoncetemplate<classT>classLinearList{public://线性表是否为空virtualboolempty()const=0;//线性表大小virtualintsize()const=0;//根据ID获取线性表元素virtualT&get(inttheIndex)const=0;......
  • Go每日一库之133:lo(基于泛型的 Golang lodash 库)
    近日,Go核心开发团队终于宣布了Go1.18正式版本的发布!这是一个大家期待很久的版本!Go1.18包含大量新功能:模糊测试、性能改进、工作区等,以及Go语言开源以来最大的一次语法特性变更——支持泛型!支持泛型后,我们便不再需要写如下冗余的代码:现在只需要简单的一行即可:funcMi......
  • Go每日一库之135:Ent(Facebook 开源 Golang 实体框架)
    对于后端开发者来说,一款好用的框架能够大大提升应用的开发效率。为了降低开发者使用TiDB的门槛,方便开发者快速连接到TiDB,我们也在和合作伙伴一起,逐步完善面向主流开发语言和框架的连接支持。近日,Facebook开源的Golang实体框架Ent完成了对TiDB数据库的支持。Ent是......
  • 使用数组操作实体类
    编写实体类publicclassStudent{Stringname;//姓名Stringsex;//性别intsno;//学号intscore;//成绩publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;......
  • 使用数组模拟队列和栈
    使用数组模拟队列案例1publicclassQueue{privateint[]num=newint[5];privateintlen=0;publicintsize(){returnthis.len;}//添加publicintadd(intn){if(len<num.length){num[len]=n;......
  • 使用数组模拟集合
    编写方法publicclassMyArrayList{privateint[]n=newint[10];//动态数组privateintsize=0;//长度publicintsize(){returnthis.size;}//添加一个元素publicvoidadd(intelement){n[size]=element;......
  • 向有序数组插入数据,数组依然是有序的
    数组降序的情况下插入数据依然是降序第1次推导publicclasstest{publicstaticvoidmain(String[]args){int[]ints={90,80,70};inttmp=85;//与第1个数比较时//[0][1][2][]if(tmp>ints[0]){/......
  • 数组冒泡排序
    第1次推导publicclasstest{publicstaticvoidmain(String[]args){int[]ints={6,5,9,5};inttmp;if(ints[0]>ints[1]){tmp=ints[0];ints[0]=ints[1];ints[1]=tmp;}......
  • 数组插入排序
    第1次推导publicclasstest{publicstaticvoidmain(String[]args){int[]ints={2,5,3,1,8,9};inttmp;//存储临时变量intj;//开始比较第几位的数//第1次//2,5,3,1,8,9j=1;//比较索引1的数......