List接口下有很多个集合,他们存储元素所采用的结构方式是不同的,导致了这些集合有他们各自的特点;
数据存储的常用结构:
堆栈:
先进后出(装子弹结构顺序)存进去的元素,要在他后面的元素依次取出后,才能取出该元素;
栈的入口、出口都是栈的顶端位置;
压栈:就是存元素。(把元素存储到栈的顶端位置,栈中已有元素依次向栈底方向移动一个位置);
弹栈:就是取元素。(把栈的顶端位置元素取出,栈中已有元素依次向栈顶方向移动一个位置);
队列:
先进先出(安检):存进去的元素,要在他前面的元素依次取出后,才能取出该元素;
队列的入口、出口各占一侧;
数组:
查找元素快,通过索引,可以快速的访问指定位置的元素;
增删元素慢:
指定索引位置增加元素:需要创建一个新数组,将指定新元素存储在指定索引位置,再把原数组元素根据索引,复制到新数组对应索引的位置;
指定索引位置删除元素:需要创建一个新数组,把原数组元素根据索引,复制到新数组对应索引的位置,原数组中指定索引位置元素不复制到新数组中;
链表:
多个节点之间,通过地址进行连接;
查找元素慢:想查找某个元素,需要通过连接的节点,依次向后查找指定元素;
增删元素快:只需要修改连接下个元素的地址即可;