gfc-collection
![Join the chat at https://gitter.im/gilt/gfc](https://camo.githubusercontent.com/8780d0f0137f26a51ba5101c606dbe0ff96b53b58a56d7e02533310e5d7491e1/68747470733a2f2f6261646765732e6769747465722e696d2f67696c742f6766632e737667)
A library that contains scala collection utility classes. Part of the Gilt Foundation Classes.
Getting gfc-collection
The latest version is 0.0.5, which is cross-built against Scala 2.10.x, 2.11.x and 2.12.x.
If you're using SBT, add the following line to your build file:
libraryDependencies += "com.gilt" %% "gfc-collection" % "0.0.5"
For Maven and other build tools, you can visit search.maven.org. (This search will also list other available libraries from the gilt fundation classes.)
Contents and Example Usage
com.gilt.gfc.collection.CircularBuffer
Simple non-thread-safe circular buffer implementation that supports adding a new item, finding the oldest item, the newest item, or iterating from oldest to newest.
val buffer = new CircularBuffer[Int](5)
buffer.add(0)
assert(buffer.oldest == 0)
assert(buffer.newest == 0)
assert(buffer.size == 1)
(1 to 4).foreach(buffer.add(_))
assert(buffer.oldest == 0)
assert(buffer.newest == 4)
assert(buffer.size == 5)
buffer.add(5)
assert(buffer.oldest == 1)
assert(buffer.newest == 5)
assert(buffer.size == 5)
com.gilt.gfc.collection.TopN
Utility to select top N items from a collection.
val numbers = scala.util.Random.shuffle(0 to 1000)
assert(TopN(5, numbers) == Seq(0, 1, 2, 3, 4))
assert(TopN(5, numbers)(scala.math.Ordering.Int.reverse) == Seq(1000, 999, 998, 997, 996))
License
Copyright 2018 Gilt Groupe, Inc.
Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0