Hi!欢迎光临陕西省的权威思科、华为、Oracle、红帽、深信服、微软认证培训中心!
| 029-88235527
您现在所在位置:首页 > 新闻资讯 > 最新资讯 >

Java数据结构学习方法

发布日期:2019-12-06 16:07:43点击次数:

分享到:
  Java数据结构

  要理解Java数据结构,必须能清楚何为数据结构?

  数据结构:

  Data_Structure,它是储存数据的一种结构体,在此结构中储存一些数据,而这些数据之间有一定的关系。

  而各数据元素之间的相互关系,又包括三个组成成分,数据的逻辑结构,数据的存储结构和数据运算结构。

  而一个数据结构的设计过程分成抽象层、数据结构层和实现层。

  数据结构在Java的语言体系中按逻辑结构可以分为两大类:线性数据结构和非线性数据结构。
Java数据结构学习方法

  Java数据结构之:线性数据结构

  线性数据结构:常见的有一维数组,线性表,栈,队列,双队列,串。

  一维数组

  在Java里面常用的util有:String,int,ArrayList,Vector,CopyOnWriteArrayList等,及可以通过一维数组自己实现不同逻辑结构的Util类,而ArrayList封装了一些的基本操作方法。

  ArrayList和Vector的区别是:Vector是线程安全的,方法同步。CopyOnWriteArrayList也是线程安全的但效率要比Vector高很多。

  数组这种数据结构典型的操作方法,是根据下标进行操作的,所以insert的的时候可以根据下标插入到具体的某个位置,但是这个时候它后面的元素都得往后面移动一位。所以插入效率比较低,更新,删除效率也比较低,而查询效率非常高,查询效率时间复杂度是1。

  线性表

  线性表是有序的储存结构、链式的储存结构。链表的物理储存空间是不连续的,链表的每一个节点都知道上一个节点、或者下一个节点是谁,通常用Node表示。常见的有顺序链表(LinkedList、Linked***),单项链表(里面只有Node类),双向链表(两个Node类),循环链表(多个Node类)等。

  操作方法:插入效率比较高,插入的时候只需要改变节点的前后节点的连接即可。而查询效率就比较低了,如果实现的不好,需要整个链路找下去才能找到应该找的元素。所以常见的方法有:add(index,element),addFirst(element),addLast(element),getFirst,getLast,get(element)等。

  常见的Uitil有:LinkedList,LinkedMap等,而这两个JDK底层也做了N多优化,可以有效避免查询效率低的问题,当自己实现的时候需要注意。其实树形结构可以说是非线性的链式储存结构。

  栈Stack

  栈,最主要的是要实现先进后出,后进先出的逻辑结构。来实现一些场景对逻辑顺序的要求。所以常用的方法有push(element)压栈,pop出栈。

  java.util.Stack就实现了这用逻辑,而Java的Jvm里面也用的到了此种数据结构,就是线程栈,来保证当前线程的执行顺序。

  以上就是西安鸥鹏Java培训机构小编介绍的“Java数据结构学习方法”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为你服务。