![image.png](https://static.studygolang.com/180120/0290b428e2815bbfa74dd584f1d5699b.png)
go语言中的slice没有插入方法,唯一能想到的只能是LA =append(LA,LB),然后再冒泡排序,不知道有没有人能指点一下,是否能有更优解决方式。
我没看到例子中有表明需要排序的事情。可以采取 map 的方式来进行并集操作。
```
res := make(map[int]bool, 0)
for _, v := range LA {
res[v] = true
}
for _, v := range LB {
if _, ok := res[v]; !ok {
res[v] = true
}
}
```
这样,res 里的所有的 key 就是 A 与 B 的并集了,可以声明一个 slice,把 key 都放进去。
需要排序的话,可以像楼上说的,用 sort 包来做,实现三个方法就行了。
#2
更多评论
LA可以考虑使用btree数据结构,插入数据可以考虑下面方式,这样就不用再重新排序了。(排序直接使用标准库sort提供的排序算法框架就行了)
```go
func insertAt(index int, la *[]interface{}, value interface{}) {
*la = append(*la, nil)
if index < len(*la) {
copy((*la)[index+1:], (*la)[index:])
}
(*la)[index] = value
}
```
#1