Comments (3)
And a function GetOrNext/GetOrPrev
which try to get the key or the next key in finding may be useful for union-indexing in database design.
from gods.
Similiar API like https://github.com/google/btree would be great.
from gods.
"search 20 items large than 50",
There are two ways now of answering such questions with GoDS (efficient and inefficient way) after #189 using enumerable (creates a new list) or using the efficient iterator NextTo() function. Working example:
package main
import (
"fmt"
"github.com/emirpasic/gods/lists/arraylist"
"math/rand"
)
// "search 20 items larger than 50"
func main() {
// Generate some random data
list := arraylist.New()
for i := 0; i < 1000; i++ {
list.Add(rand.Intn(100))
}
// Inefficient way of selecting all elements (enumerable select function)
newList := list.Select(func(index int, value interface{}) bool {
return value.(int) > 50
}).Values()[:20]
fmt.Println(len(newList), newList)
// Efficient iterator way
it := list.Iterator()
seek := func(index int, value interface{}) bool {
return value.(int) > 50
}
for count := 0; count < 20 && it.NextTo(seek); count = count + 1 {
fmt.Println(it.Value())
}
}
Let me know if the above solves the needed cases, otherwise I'll reopen the issue
from gods.
Related Issues (20)
- I would like to know how to delete a node data while treemap loop read. I want to know where is my code wrong? HOT 2
- Add to Go official wiki? HOT 3
- generic upgrade request HOT 3
- RedBlackTree: Iterators become invalid after removing an element. HOT 2
- DS which can give element if present or next greater if not present, elements should be stored in sorted order HOT 2
- LinkedHashMap Sort? HOT 3
- Multiset support
- deque support
- hashset should support NewWith Comparator
- Add method of Set lack info about the insert take place or not
- treeset:The names of each element are not equal, why is second_8 disappearing? HOT 1
- godslist.js refrence in chrome 120.0.6099.225 console
- Add elements of a slice [] T
- Red black tree: Unresolved reference 'NewWithIntComparator'
- Red black tree: package cmp is not in GOROOT (/usr/lib/golang/src/cmp)
- Interfaces support any types HOT 4
- Why cannot index priorityqueue.NewWith (value of type func(comparator utils.Comparator) *priorityqueue.Queue)? HOT 1
- A issue In BinaryHeap
- linkedhashmap json.Marshal error HOT 1
- treeset json.Unmarshal error HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gods.