数据结构的理解

数据结构的理解

需要什么格式的数据,才创造了什么格式的的数据结构。

一.数据结构涉及词

数据内容:有序,无序,自然排序,重复,不重复。
数据结构顺序:单向,双向,循环,先进先出,后进先出。
关系:一个整体的,没有关系的,一对一的,一对多的,多对多的。

二.需求

1.数组

我们需要单个元素(不附带关系),多个元素(不附带关系)用数组。
在这里插入图片描述

2.List

有序的多组元素(附带了对象关系)用Arrylist。Arrylist是动态数组,在内存中是连续存储的。
多组数据,而每一组数据可能调用下一组数据或者上一组数据,这时需要在这组数据上保存两个引用节点,这时就用linkedlist(附带对象关系)。
linkedlist是有序的,双向链表。节点引用是双向的。
说链,其实就是由引用关系的构成。双向链表其实就是双向引用的数据。
列表主要有两种实现,分别是顺序表和链表
ArrayList表的结构图解:
在这里插入图片描述

顺序表本质是一个可以动态扩容的数组,在Java中的实现是ArrayList。

链表是一个双向链表,Java中链表的实现为LinkedList。LinkedList在Java中可谓是非常强大的一个集合类,它还可以作为双向队列、栈来使用。

在这里插入图片描述

ArrayList 为什么线程不安全
详解
LinkedList线程安全问题
list的数据结构就是数组。
用一副图表示节点:
在这里插入图片描述
在这里插入图片描述

看到LinkedList的Entry中的"E element",就是它真正存储的数据。"Entry next"和"Entry previous"表示的就是这个存储单元的前一个存储单元的引用地址和后一个存储单元的引用地址。
在这里插入图片描述<

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值