测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可 | MIT |
发布上次发布 | 2016年12月 |
SwiftSwift 版本 | 3.0 |
SPM支持 Swift Package Manager | ✓ |
由 Mauricio Santos 维护。
Swift 集合库
Buckets 是 Swift 的一个完整、 tested 和 documented 集合库。
Swift 3.0+ 平台,如
Linux/iOS 9.0+/MacOS 10.10+/watchOS 2.0+/tvOS 9.0+
请参阅 Swift 包管理器文档
您还可以手动将 Buckets 集成到您的 Xcode 项目中。
Buckets
文件夹,并将 Buckets.xcodeproj
拖放到您的应用项目文件导航器中。这意味着在您的项目内部,而不是在最顶层。Buckets.framework
。+
按钮,选择“新建拷贝文件阶段”。将“目标”设置为“框架”,并添加 Buckets.framework
。每个平台的版本有4个。选择正确的版本。所有集合类型都作为结构体实现。这意味着当它们被赋值给新的常量或变量,或者当它们传递给函数或方法时,它们会被复制。
您不需要担心复制结构体
您在代码中看到的行为始终与你复制了某个东西一样。然而,Swift 只在绝对需要时才在后台执行实际的复制。Swift 管理所有值的复制以确保最佳性能,您不应避免赋值来尝试先发制人优化。
存储桶集合类型以相同的方式进行优化。
import Buckets
var queue = Queue<String>()
queue.enqueue("first")
queue.enqueue("last")
queue.dequeue() // "first"
var deque = Deque<String>()
deque.enqueueLast("last")
deque.enqueueFirst("first")
deque.dequeueFirst() // "first"
var stack = Stack<String>()
stack.push("first")
stack.push("last")
stack.pop() // "last"
var pQueue = PriorityQueue<Int>(sortedBy: <)
pQueue.enqueue(3)
pQueue.enqueue(1)
pQueue.enqueue(2)
pQueue.dequeue() // 1
var multiset = Multiset<String>()
multiset.insert("a")
multiset.insert("b")
multiset.insert("a")
multiset.distinctCount // 2
multiset.count("a") // 2
var multimap = Multimap<String, Int>()
multimap.insertValue(1, forKey: "a")
multimap.insertValue(5, forKey: "a")
multimap["a"] // [1, 5]
var bimap = Bimap<String, Int>()
bimap[key: "a"] = 1
bimap[value: 3] = "b"
bimap[value: 1] // "a"
bimap[key: "b"] // 3
var graph = Graph<String, Int>()
graph["Boston", "NY"] = 5
graph["NY", "Miami"] = 5
graph.pathFrom("Boston", to: "Miami") // ["Boston", "NY", "Miami"]
var sss = String("hola");
var matrix: Matrix<Double> = [[1,2,3], [4,5,6]]
matrix[1, 0] = 5
matrix - [[1,0,1], [1,0,1]] // [[0,2,2],[4,5,5]]
var bitArray: BitArray = [true, false]
bitArray.append(true)
bitArray.cardinality // 2
var circArray = CircularArray<Int>()
circArray.append(1)
circArray.prepend(2)
circArray.first // 2
var bFilter = BloomFilter<String>(expectedCount: 100)
bFilter.insert("a")
bFilter.contains("a") // true
阅读文档。
毛里西奥·桑托斯,[email protected]