如何删除推送中的重复值?
How do i remove duplicate valeus in push?
这可能是菜鸟问题...
如何删除重复值而不是推送值?
当值为:("lorem", "ipsum", 1, 1, 1, "jack", "jill", "felix", "donking")
它应该打印:("lorem", "ipsum", 1, "jack", "jill", "felix", "donking")
如何像上面那样删除推送函数中的重复值?
// Push values
func (q *Data) Push(n interface{}) *Data {
if q.Len() < q.size {
q.data = append(q.data, n)
if q.data[q.Len()] == q.data[q.Len()+1] {
q.Pop()
q.Push(n)
}
} else {
q.Pop()
q.Push(n)
}
return q
}
每个数据结构都使用底层原始数据结构来实现,看起来你在使用切片。如果只想保存唯一数据,则应使用 map
。为了在仅使用地图查找重复项时尽可能高效,您可以使用 map[interface{}]struct{}
.
需要根据推送的值检查队列中的数据。如果数据已经在队列中,它应该返回。
for i := range q.data {
if q.data[i] == n {
return q // return q when n value is found equal to one of q.data values.
}
}
q.data = append(q.data, n)
这可能是菜鸟问题...
如何删除重复值而不是推送值?
当值为:("lorem", "ipsum", 1, 1, 1, "jack", "jill", "felix", "donking")
它应该打印:("lorem", "ipsum", 1, "jack", "jill", "felix", "donking")
如何像上面那样删除推送函数中的重复值?
// Push values
func (q *Data) Push(n interface{}) *Data {
if q.Len() < q.size {
q.data = append(q.data, n)
if q.data[q.Len()] == q.data[q.Len()+1] {
q.Pop()
q.Push(n)
}
} else {
q.Pop()
q.Push(n)
}
return q
}
每个数据结构都使用底层原始数据结构来实现,看起来你在使用切片。如果只想保存唯一数据,则应使用 map
。为了在仅使用地图查找重复项时尽可能高效,您可以使用 map[interface{}]struct{}
.
需要根据推送的值检查队列中的数据。如果数据已经在队列中,它应该返回。
for i := range q.data {
if q.data[i] == n {
return q // return q when n value is found equal to one of q.data values.
}
}
q.data = append(q.data, n)