1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-04 21:02:27 +08:00

list: add DeleteIf method (#50)

DeleteIf delete all satisfying f(data[i]), returns count of removed elements
This commit is contained in:
donutloop
2022-07-23 12:52:29 +02:00
committed by GitHub
parent 0299c454ab
commit 3d7600a9e4
3 changed files with 70 additions and 1 deletions

View File

@@ -47,6 +47,7 @@ import (
- [Union](#Union)
- [Intersection](#Intersection)
- [SubList](#SubList)
- [DeleteIf](#DeleteIf)
<div STYLE="page-break-after: always;"></div>
@@ -820,4 +821,33 @@ func main() {
fmt.Println(l.SubList(2, 5)) // []int{3, 4, 5}
}
```
```
### <span id="DeleteIf">DeleteIf</span>
<p>DeleteIf delete all satisfying f(data[i]), returns count of removed elements</p>
<b>Signature:</b>
```go
func (l *List[T]) DeleteIf(f func(T) bool) int
```
<b>Example:</b>
```go
package main
import (
"fmt"
list "github.com/duke-git/lancet/v2/datastructure/list"
)
func main() {
l := list.NewList([]int{1, 1, 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 1, 1, 1})
fmt.Println(l.DeleteIf(func(a int) bool { return a == 1 })) // 12
fmt.Println(l.Data()) // []int{2, 3, 4}
}
```