这里的list列表相当于一个双端队列,也可以认为是双向链表,也可以认为是数组,后续的很多命令都使用到下标。
list的特点:
- list中的每个元素也都是String类型
- 里面的元素可以重复
- 列表中的元素是有序的,如果里面元素顺序进行调换就不是原来的List
1.常用命令大全
以下命令,l和r组成的相对命令,分别表示left和right的意思。如果是l单独存在,则说明是list的意思。区间范围都是闭区间,并且坚持负数下标。
操作类型 | 命令 | 时间复杂度 |
---|---|---|
左边添加 | lpush key value [value … ] |
O(k),k 是元素个数
|
右边添加 | rpush key value [value … ] |
O(k),k 是元素个数
|
指定位置添加 | linsert key before | after pivot value |
O(n),n是pivot距离头尾的距离
|
范围查找 | lrange key start end |
O(s+n),s是start偏移量,
n是start到end的范围
|
下标查找 | lindex key index | O(n),n 是索引的偏移量 |
求长度 | llen key | O(1) |
左边删除 | lpop key | O(1) |
右边删除 | rpop key |
O(1)
|
指定删除 | lrem key count value |
O(k),k 是元素个数
|
范围删除 | ltrim key start end |
O(k),k 是元素个数
|
指定修改 | lset key index v |