郑文锋(day05完成)


2.1 常见的数据结构;

  1. 常用的数据结构有:”数组”,”栈”,”队列”,”链表”,”树”,”散列”,”堆”,”图” 等;
  • 数组

    长度固定,只能存储一种数据类型,查询快,增删慢,因为要移动元素,索引对应的值会变化;

  • 是一种基于先进后出的数据结构,最后一个数据会被第一个读取;

  • 队列

    是一种基于先进先出的数据结构,最后一个数据也是到最后才开始读取;

  • 链表→”单链表” “双链表” “循环链表

    链表是一种动态的数组结构,会按需扩容;

单链表是每个元素结束的节点指向下一个元素开始的节点;

双链表是每个元素都有指向下⼀个和上⼀个元素的节点;

循环链表包含了单链表和双链表,并且在双链表的基础上,双链表的第一个元素和最后一个元素的节点会相连成一个循环链;

  • 树→“二叉树” “平衡树” “红黑树” 等;
  • 散列表也是哈希表(map集合),由键和值两个元素组成,用键去对应指定的值;

2.2 集合和数组的区别;

  • 数组

    数组的长度是固定的,数组可以存储引用数据类型,也可以存储基本数据类型,但是不能同时存储不同类型的数据

  • 集合

    集合的长度是可变的,集合存储的都是对象,对象的类型可以是自定义类型,也可以是基本类型(包装类)和引用类型,并且多种不同类型的对象都可以存储在一个集合中,当对象数据量较多时,通常使用集合进行存储


6.14 ArrayList和linkedList的区别;

  • ArrayList

    ArrayList的底层结构是数组,查询快,增删慢;

  • LinkedList

    LinkedList的底层结构是双链表,查询慢,增删快;

⭐List集合的特点

  1. 有索引;
  2. 元素可重复;
  3. 存储和取出有顺序;

6.15 说说ArrayList的特点;

  1. ArrayList实际上是通过一个数组去保存数据的,当我们构造ArrayList时,如果使用默认构造函数,ArrayList的默认容量大小是10;
  2. 当ArrayList容量不足以容纳全部元素时,ArrayList会自动扩张容量,扩张大小是原来的1.5倍;
  3. ArrayList的底层结构是数组,查询快,增删慢;

⭐扩展

  1. 工作中最常用的集合,没有特殊的需求通常都使用ArrayList来存储数据;

6.15 说说LinkList的特点;

  1. LinkedList的底层结构是双向链表,查询慢,增删快;
  2. LinkedList特有方法;
    • void addFirst(E e) 在最前面添加一个数据
    • void addLast(E e) 在最后面添加一个数据
    • E getFirst() 获取第一个元素
    • E getLast() 获取最后一个元素
    • E removeFirst() 删除第一个元素
    • E removeLast() 删除最后一个元素