【学习总结】
在java中常用的list有两种:ArrayList和LinkedList
ArrayList擅长查找元素
LinkedList擅长增删元素
ArrayList的底层是数组,这也就导致了它不论数据量大小,查找元素速度都特别快,因为数组结构,每一个元素都有对应的索引;如果想在ArrayList中进行增删操作,则需要新增元素位置后的所有元素都向后挪一位,速度自然很慢。
LinkedList的底层是双向链表,如果想通过linkedList去查找元素,需要先挨个给各个元素添加上索引,再去根据索引查找。数据量越大,速度越慢。而如果是增删元素,只需要把新增元素前后两个元素的连接删除,在将新增元素与前后两个元素分别建立双向指向。也就是影响的只是这两个元素,所以LinkedList增删很快。
redis中的list采用的就是LinkedList。
为什么redis选择了链表?
Redis操作中,最多的操作是进行元素的增删。
使用环境:
做大数据集合的增删
任务队列