数据结构的理解
需要什么格式的数据,才创造了什么格式的的数据结构。
一.数据结构涉及词
数据内容:有序,无序,自然排序,重复,不重复。
数据结构顺序:单向,双向,循环,先进先出,后进先出。
关系:一个整体的,没有关系的,一对一的,一对多的,多对多的。
二.需求
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"表示的就是这个存储单元的前一个存储单元的引用地址和后一个存储单元的引用地址。
<