kotlin extentions
/**
* @param length remove index [0..length)
*/
fun <E> MutableList<E>.removeFirst(length: Int): MutableList<E> {
if (length in 1..size) {
subList(0, length).clear()
}
return this
}
/**
* @param length remove index [(size - length)..size)
*/
fun <E> MutableList<E>.removeLast(length: Int): MutableList<E> {
if (length in 1..size) {
subList(size - length, size).clear()
}
return this
}
test
package hello // 可选的包头
/**
* @param length remove index [0..length)
*/
fun <E> MutableList<E>.removeFirst(length: Int): MutableList<E> {
if (length in 1..size) {
subList(0, length).clear()
}
return this
}
/**
* @param length remove index [(size - length)..size)
*/
fun <E> MutableList<E>.removeLast(length: Int): MutableList<E> {
if (length in 1..size) {
subList(size - length, size).clear()
}
return this
}
fun main(args: Array<String>) { // 包级可见的函数,接受一个字符串数组作为参数
println("Hello World!") // 分号可以省略
val list = mutableListOf<String>("0","1","2","3","4","5","6","7")
println(list)
list.removeFirst(2)
println(list)
list.removeLast(2)
println(list)
}
Hello World!
[0, 1, 2, 3, 4, 5, 6, 7]
[2, 3, 4, 5, 6, 7]
[2, 3, 4, 5]
refrerence
https://www.cnblogs.com/gaojing/archive/2012/06/17/java-list-sublist-caution.html