八大数据结构之数组

数据结构主要有八大类:1、数组;2、栈;3、队列;4、链表;5、树;6、散列表;7、堆;8、图

数据结构分类图

数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成


1、数组

数组(Array)

是一种线性表数据结构。它用一组连续的内存空间来存储一组具有相同类型的数据。
线性表(Linear List)就是数据排成像一条线一样的结构。每个线性表上的数据最多只有两个方向。除了数组,链表、队列、栈也是线性表结构。
非线性表 有二叉树,堆,图等。之所以是非线性,是因为数据之间并不是简单的前后关系。

优点:

  • 按照索引查询元素速度快
  • 按照索引遍历数组方便

缺点:

  • 数组的大小固定后就无法扩容了
  • 数组只能存储一种类型的数据
  • 添加,删除的操作慢,因为要移动其他的元素。

适用场景:

频繁查询,对存储空间要求不大,很少增加和删除的情况。

ArrayList(动态数组/可变数组)

在java中,ArrayList相当与一个动态数组,支持扩容。它可以把很多数组操作的细节封装起来,比如数组的插入和删除。
数组在定义的时候,因为需要给它分配连续的内存空间,需要预先指定其大小,当存放的数据大于其大小的时候,我们需要从新分配一块更大的空间,把原来的复制过去在插入新的元素。

扩容原理:ArrayList扩容机制

posted @ 2020-11-09 01:34  丶Tristana  阅读(134)  评论(0)    收藏  举报