Java入门到精通——第二十一单元 List、数据结构

课程目标

  1. 掌握数据结构的特点
  2. 掌握List集合的使用
  3. 掌握ArrayList集合的使用
  4. 熟悉LinkedList集合的使用

1.数据结构

数据结构是一种数据的组织和存储形式。数据结构包含的内容:逻辑关系、应用在数据存储的、封装了对应的操作的一些列元素的集合。

1.1数据结构概述

1.2栈

:Stack,又叫做堆栈,他是运算受限的线性表。其限制是只允许在线性表的一端进行操作(插入、删除),不允许在其他任何位置进行操作。

特点

  • 先进后出
  • 入口和出口都是在栈的顶端位置

名词
压栈:往栈里面存放一个元素,存放在栈顶位置
弹栈:取元素,从栈顶取一个元素

1.3队列

队列,也叫对queue,运算受限的线性表,其限制是只允许在表的一端进行插入操作,在表的另一端进行删除操作。

特点

  • 先进先出
  • 一端进行插入操作,一端进行删除操作

1.4数组

数组,Array,是一组有序的元素列,是在内存里面开辟的一片连续的存储空间。门牌号。

特点

  • 增删慢查询快
    增加元素:创建新数组,将原数组里面的元素按照索引存储到新数组,再在指定位置添加元素
    删除元素:创建新数组,将原数组剩下的元素,按照顺序复制到新数组里面

1.5链表

链表:LinkedList,由一系列的节点node组成,节点包含两部分数据和指针,存储数据的时候,数据存储在节点的数据位置,指针指向下一个节点。节点可以动态生成。

特点

  • 多个节点之间通过地址相关联
  • 增删元素快:
    增加元素只需要修改链接下个元素的地址即可
    删除元素只需要修改链接下个元素的地址

1.6红黑树

二叉树:binary tree每个节点不超过2的有序树,左边的成为“左子树”,右边的叫做“右子树”
红黑树是一种特殊的二叉查找树

特点
查找快,趋近平衡树,查找叶子元素最少和最多不超过2倍

2.List集合

接口 List,有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。

2.1List接口特点

  • 元素存取有序的集合
  • 元素可以重复
  • 一个带有索引的集合

2.2List常用方法的使用

boolean add(E e)

  • 向列表的尾部添加指定的元素(可选操作)。

E get(int index)

  • 返回列表中指定位置的元素。

E remove(int index)

  • 移除列表中指定位置的元素(可选操作)。将所有的后续元素向左移动(将其索引减 1)。返回从列表中移除的元素。

int size()

  • 返回列表中的元素数。如果列表包含多于 Integer.MAX_VALUE 个元素,则返回 Integer.MAX_VALUE。

set(int index, E element)

  • 用指定元素替换列表中指定位置的元素(可选操作)。

3.List的子类

3.1ArrayList集合

数组,增删慢,查找快
不要一味的使用ArrayList

3.2LinkedList集合

List 接口的链接列表实现(双向链表),增删快,查找慢
特有方法

  • public void addFirst(E e)将指定元素插入此列表的开头。
  • public void addLast(E e)将指定元素添加到此列表的结尾。
  • public E getFirst()返回此列表的第一个元素。
  • public E getLast()返回此列表的最后一个元素。
  • public E poll()获取并移除此列表的头(第一个元素)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沐黎Mu li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值