美文网首页
实现一个限定数量,新增旧元素超限后删除最后的元素的List-Fi

实现一个限定数量,新增旧元素超限后删除最后的元素的List-Fi

作者: 不思进取的码农 | 来源:发表于2020-11-27 14:50 被阅读0次

FixedSizeList是什么

  • 一个限定数量的List实现
  • 支持设置一个最大的List大小
  • 在达到最大容量时,自动实现删除旧的元素,增加新的元素

实现

/**
 * 一个固定内容大小的容器,设定固定大小的item数量,当超过去除旧的item
 * 新的item位于最开始的位置,旧的位于后面的位置
 * 该容器只支持写入,不支持外部显式删除操作
 */
class FixedSizeList<T>(private val maxItemCount: Int = 5) {

    private val backingCollection = LinkedList<T>()

    fun add(item: T?) {

        try {
            if (backingCollection.size >= maxItemCount) {

                backingCollection.removeLast()

            }
            backingCollection.addFirst(item)

        } catch (e: Exception) {

            e.printStackTrace()

        }
    }

    override fun toString(): String {
        return "SizedList(maxItemCount=$maxItemCount, backingCollection=$backingCollection)"
    }

    fun getItems(): List<T?> = backingCollection.toList()
}

什么时候使用

  • 当记录数据需要进行限制,比如听云现场数据收集,不能无限增加,我们需要保持最近的某些元素,以确保关键信息保留
  • 其他需要进行大小限制的列表

使用示例


  private fun testSizedList() {

        val sizedList = FixedSizeList<String>(5)

        for (n in 0..10) {

            sizedList.add(n.toString())

        }

        sizedList.add(null)

        ToastUtil.show(sizedList.getItems().joinToString())
    }

(每天学习一点点.每天进步一点点,分享不宜路过点个赞呀,喜欢的点个关注后续更新不断)

相关文章

  • 实现一个限定数量,新增旧元素超限后删除最后的元素的List-Fi

    FixedSizeList是什么 一个限定数量的List实现 支持设置一个最大的List大小 在达到最大容量时,自...

  • vue响应式修改数组

    新增数据 在数组尾部添加元素push() 在数组头部添加元素unshift 删除数据 1.删除最后一个元素 pop...

  • 5-5 DOM结构操作

    5-5 DOM结构操作(新增删除移动,获取父子元素) 新增节点 获取父元素 获取子元素 删除节点 移动 其他比如遍...

  • 常数时间插入删除获取元素

    删除的时候,交换最后一个元素与被删除元素,然后pop最后一个元素。记录交换元素的新位置,写入hashmap。 插入...

  • 利用数组实现堆

    成员变量 元素个数N包含元素的数组items 方法 插入删除 插入实现 1 将元素直接插入到最后一个元素(N),N...

  • 单链表和双链表

    单链表(可以用来实现栈和队列) 删除链表的元素 添加元素 双向链表(实现LinkedList) 添加元素 删除元素

  • 经典面试题--两个队列实现一个栈

    1. 实现原理 一个队列加入元素,弹出元素时,需要把队列中的 元素放到另外一个队列中,删除最后一个元素;两个队列始...

  • Redis基础 - Redis数据库基础、python操作Red

    Redis list添加元素和删除元素只能在最后一个位置进行 -- 栈 添加元素只能在最后一个位置进行 删除元素只...

  • 数组的方法

    一、改变数组的方法 将一个元素添加到最后,返回新数组长度。 删除数组最后一个元素,返回删除的元素。 将一个元素添加...

  • 数组操作

    删除第一个元素(改变原数据) 删除最后一个元素(改变原数据)

网友评论

      本文标题:实现一个限定数量,新增旧元素超限后删除最后的元素的List-Fi

      本文链接:https://www.haomeiwen.com/subject/bkavbktx.html