Ben dili yeniyim. Listeyi, bir dilde bulunan bir koşula dayalı olarak yinelemek için listeden çıkarmak istiyorum. Örneğin, yinelenen öğeleri listeden kaldırmak istiyorum. Kod aşağıda verilmiştir.Listede aynı listeyi yinelemek için öğe nasıl kaldırılır
package main
import (
"container/list"
"fmt"
)
var sMap map[int]bool
func main() {
l := list.New()
l.PushFront(4)
l.PushFront(5)
l.PushFront(7)
l.PushFront(6)
l.PushFront(5)
l.PushFront(4)
l.PushFront(5)
l.PushFront(7)
l.PushBack(9)
l = removeDuplicate(l)
for e := l.Front(); e != nil; e = e.Next() {
fmt.Println(e.Value)
}
}
func removeDuplicate(l *list.List) *list.List {
sMap = make(map[int]bool)
for e := l.Front(); e != nil; e = e.Next() {
m := e.Value.(int)
fmt.Println("VALUE : ", m)
if sMap[m] == true {
fmt.Println("Deleting ", e.Value)
l.Remove(e)
} else {
fmt.Println("Adding New Entry", e.Value)
sMap[m] = true
}
}
return l
}
Yukarıdaki kod, yalnızca ilk kaldırma işlemine kadar liste boyunca yinelenir. Aynı listede yinelenen elemanı kaldırmaya çalışıyorum. Çalışmamanın nedeni budur. Golang'da bir liste yineleyici önerebilir mi?
Kişisel kod parçası eksik ve derleme yapmaz. [Minimal, Tam ve Doğrulanabilir bir örnek nasıl oluşturulur.] (Http://stackoverflow.com/help/mcve) – peterSO
@peterSO - Tam kodu ekledim – Dany