【无标题】

一,栈
数据先进后出,像是个有底(栈底)无盖(栈顶)的容器
数据进入栈的过程成为进栈,离开栈成为出栈

二,队列
先进先出,就像排队一样。
从后端进入队列的过程为入队列,从前端离开的过程叫出队列

三,数组
查询数据通过索引定位,查询任意数据耗时相同,查询速度最快
但删除数据时,后面的每一个数据会前移,删除效率低
同理,添加时后面的数据后羿,效率低

四,链表
链表的一个节点由数据和下一个数据的地址组成,这样这个节点就指向了下一个节点
增删数据时,只需要动前后两个节点的指向就可以了,但是查找时需要从头结点开始,增删快,查询慢

五,哈希表

采用的是数组加链表(即元素为链表的数组)实现
哈希值:JDK根据对象的地址或者字符串或者数字算出来的int类型的数值,可以通过Object的hashCode()返回
当储存数据时,会用哈希值与16(默认数组长度)取余,把它放进取余结果与数组索引相同的那个空间里,如果余数相同会判断内容相不相同,不相同就以链表的方式存到那个元素后面,相同将不会存进去

你可能感兴趣的:(数据结构)