郑文锋(day05完成)
2.1 常见的数据结构;
- 常用的数据结构有:”数组”,”栈”,”队列”,”链表”,”树”,”散列”,”堆”,”图” 等;
数组
长度固定,只能存储一种数据类型,查询快,增删慢,因为要移动元素,索引对应的值会变化;
栈
是一种基于先进后出的数据结构,最后一个数据会被第一个读取;
队列
是一种基于先进先出的数据结构,最后一个数据也是到最后才开始读取;
链表→”单链表” “双链表” “循环链表“
链表是一种动态的数组结构,会按需扩容;
单链表是每个元素结束的节点指向下一个元素开始的节点;
双链表是每个元素都有指向下⼀个和上⼀个元素的节点;
循环链表包含了单链表和双链表,并且在双链表的基础上,双链表的第一个元素和最后一个元素的节点会相连成一个循环链;
- 树→“二叉树” “平衡树” “红黑树” 等;
- 散列表也是哈希表(map集合),由键和值两个元素组成,用键去对应指定的值;
2.2 集合和数组的区别;
数组
数组的长度是固定的,数组可以存储引用数据类型,也可以存储基本数据类型,但是不能同时存储不同类型的数据
集合
集合的长度是可变的,集合存储的都是对象,对象的类型可以是自定义类型,也可以是基本类型(包装类)和引用类型,并且多种不同类型的对象都可以存储在一个集合中,当对象数据量较多时,通常使用集合进行存储
6.14 ArrayList和linkedList的区别;
ArrayList
ArrayList的底层结构是数组,查询快,增删慢;
LinkedList
LinkedList的底层结构是双链表,查询慢,增删快;
⭐List集合的特点
- 有索引;
- 元素可重复;
- 存储和取出有顺序;
6.15 说说ArrayList的特点;
- ArrayList实际上是通过一个数组去保存数据的,当我们构造ArrayList时,如果使用默认构造函数,ArrayList的默认容量大小是10;
- 当ArrayList容量不足以容纳全部元素时,ArrayList会自动扩张容量,扩张大小是原来的1.5倍;
- ArrayList的底层结构是数组,查询快,增删慢;
⭐扩展
- 工作中最常用的集合,没有特殊的需求通常都使用ArrayList来存储数据;
6.15 说说LinkList的特点;
- LinkedList的底层结构是双向链表,查询慢,增删快;
- LinkedList特有方法;
- void addFirst(E e) 在最前面添加一个数据
- void addLast(E e) 在最后面添加一个数据
- E getFirst() 获取第一个元素
- E getLast() 获取最后一个元素
- E removeFirst() 删除第一个元素
- E removeLast() 删除最后一个元素