一、 数组的特性以及特性带来的优缺点(想象一根带把手的(首地址)、定长的、棍子(连续空间)):
1. 数组定长
缺点:难以被添加和删除。 添加的话需要操作系统的扩容,删除会使其他位置的数据前移;
2. 数组存储需要连续空间
缺点:程序在运行当中会产生很多空间碎片,由于这些空间碎片的位置不一定是连续的,所以数组较大的话,会出现空间够但数组存不下的情况,这种情况就又需要操作系统重新排列位置,导致性能消耗。
3. 数组变量,指向的是第一个数组的地址位置。
优点:在给定位置的情况下,通过首地址的偏移查询,消耗性能最小。
二、 链表的特性以及特性带来的优缺点(想象一根带把手的、不定长的、被拆卸的锁链)
1. 存储空间不是连续的
优点:删除和增加都比较方便,空间利用率高 (弥补了数组的缺点)
缺点:查询只能通过首地址依次查找,效率较低。
三、 总结
数组是定长,连续空间,导致增删消耗的性能较大,空间利用率低,但查询较快。 链表是不定长,非连续空间,导致增删消耗性能小,空间利用率高,但查询较慢。 主要是增删和查询的之间性能比较