用法很简单,只需引入如下工具类,然后调用相应方法即可。
ByteArrayQueue.kt
//Fumiama 20210601
//ByteArrayQueue.kt
//FIFO队列
class ByteArrayQueue {
private var elements = byteArrayOf()
val size get() = elements.size
fun append(items: ByteArray) {
elements += items
}
fun pop(num: Int = 1): ByteArray? {
return if(num <= elements.size) {
val re = elements.copyOfRange(0, num)
elements = elements.copyOfRange(num, elements.size)
re
} else null
}
fun clear() {
elements = byteArrayOf()
}
fun popAll(): ByteArray {
val re = elements
clear()
return re
}
operator fun plusAssign(items: ByteArray) = append(items)
}
示例代码
var buffer = ByteArrayQueue()
buffer += "test data".toByteArray() //入队
buffer.pop() //出队一个
buffer.pop(4) //出队4个
buffer.popAll() //全部出队
buffer.clear() //清空队列