1. 小视频教程 > 知识库 >

java数据结构,JAVA数据结构有哪几种

本文目录索引

1,JAVA数据结构有哪几种

JAVA数据结构有以下几种: 1、List: List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下 >标)来访问List中的元素,这类似于Java的数组。 2、Vector: 基于数组(Array)的List,其实就是封装了数组所不具备的一些功能方便我们使用,所以它难易避免数组的限制,同时性能也不可能超越数组。 另外很重要的一点就是Vector是线程同步的(sychronized)的,这也是Vector和ArrayList 的一个的重要区别。 3、ArrayList: 同Vector一样是一个基于数组上的链表,但是不同的是ArrayList不是同步的。所以在性能上要比Vector好一些,但是当运行到多线程环境中时,可需要自己在管理线程的同步问题。 4、LinkedList: LinkedList不同于前面两种List,它不是基于数组的,所以不受数组性能的限制。 它每一个节点(Node)都包含两方面的内容:节点本身的数据(data),下一个节点的信息(nextNode)。 所以当对LinkedList做添加,删除动作的时候就不用像基于数组的ArrayList一样,必须进行大量的数据移动。只要更改nextNode的相关信息就可以实现了,这是LinkedList的优势。 5、HashSet: 虽然Set同List都实现了Collection接口,但是他们的实现方式却大不一样。List基本上都是以Array为基础。 但是Set则是在 HashMap的基础上来实现的,这就是Set和List的根本区别。HashSet的存储方式是把HashMap中的Key作为Set的对应存储项。 6、HashMap: 基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 7、HashTable: Hashtable 是一个散列表,它存储的内容是键值对(key-value)映射。Hashtable 继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。 Hashtable 的函数都是同步的,这意味着它是线程安全的。它的key、value都不可以为nul

JAVA数据结构有哪几种

2,java中都有哪些数据结构??

数据结构: ①数组 (Array) 在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数 据元素的集合称为数组。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组 元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指 针数组、结构数组等各种类别。 ②栈 (Stack) 栈是只能在某一端插入和删除的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后 的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。 ③队列 (Queue) 一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行 插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。 ④链表 (Linked List) 一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分: 一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 ⑤树 (Tree) 树是包含n(n>0)个结点的有穷集合K,且在K中定义了一个关系N,N满足 以下条件: (1)有且仅有一个结点 k0,他对于关系N来说没有前驱,称K0为树的根结点。简称为根(root) (2)除K0外,k中的每个结点,对于关系N来说有且仅有一个前驱。 (3)K中各结点,对关系N来说可以有m个后继(m>=0)。 ⑥堆 (Heap) 在计算机科学中,堆是一种特殊的树形数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指 二叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。 ⑦图 (Graph) 图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点, 边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。 ⑧散列表 (Hash) 若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称 这个对应关系f为散列函数(Hash function),按这个思想建立的表为散列表。 差不多我就知道这些了~

3,JAVA 全部的数据结构有哪些?

太多了,集合框架Collection里面包含Set集合类型的,还有List列表类型的..Map是和集合框架类似的提供键值对应的..
当然可以把Collection里的元素和Map里的元素一起使用,延伸出了,HashSet,HashMap,TreeSet,TreeMap,LinkedHashSet
....很多很多的衍生类。。你不需要关心怎么实现的,因为每个实现都是挺复杂的,但是你要知道他们的时间复杂度和空间复杂度,也就是特定程序用哪个效率高或者是空间省

4,JAVA数据结构有哪几种?

数组、栈 、队列、链表、树、堆 、图、散列表 。 1:数组是计算机编程语言上,对于“Array”的中文称呼,是用于储存多个相同类型数据的集合。 2:栈是限定仅在表尾进行插入和删除操作的线性表,栈者,存储货物或供旅客住宿的地方,可引申为仓库、中转站,引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法。 3:一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。 4:链表,一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 5:哈希表,是根据关键码值而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。

5,我想学数据结构,java语言的,看什么书比较好

有很多,数据结构和抽象问题求解--Java语言描述》这本个人觉得还可以,里面会一步步教授如何设计一些容器、集合的实现,而且经常举一反三,我暂时将其划分为中级阶段的书
《大话数据结构》这是大话系列的第二本,总的来说比较浅显易懂,可以对数据结构有轻松入门的了解,缺点是版本刚出来,有些错误还待勘正,可作为初级阶段入门书籍。
《数据结构与算法分析--Java语言描述》这个就比较经典了,里面比较偏重介绍引导设计的思想也有代码实现,个人认为是初进中阶段的读物。
《算法导论》这本就不用多介绍了,法的偏理论书籍,想来应该可以算是一本高级进阶的书了。
言而总之,等到代码累积量到一定程度的时候,自然而然就会去想加强数据结构和算法相关知识了。读书这种东西,一千个读者有一千个哈姆雷特,只希望这里能提供一个参考给楼主。

6,java数据结构与算法的书,哪本好?

坦率的讲,我觉得如果你能将清华大学的严蔚敏女士等编写的
《数据结构》中的算法全部用JAVA写一遍,那么你就无需再要
刻意找《java数据结构与算法》这一类的书了,而且这对于你
以后合理使用JAVA类库提供的算法也是极有帮助的。

所有完备的编程语言都是相通的,关键看对算法的掌握程度。
这是我个人的一点看法,也可以算是经验。

祝你好运!

7,数据结构c语言版和java版有什么不同

数据结构本身是一种逻辑上的概念,它是独立于特定语言或者实现的

比如说链表,概念上说就是一组结点构成的数据结构,其中每个结点均带有后续结点信息。各种语言都可以实现链表,但实现的思路都是基于上面的逻辑概念。

因此,学习数据结构不必拘泥于某种特定语言,归根结底是要把握每个数据结构(逻辑上)的精髓

在这个基础上,每种语言都可以实现特定的数据结构,差别只在于语法实现级别。

另外虽然Java/C++等语言都带有大量的标准类库,但这并不意味着可以忽视数据结构基础理论的学习。这直接关系到实际应用时,是只能死板套用现成模板,还是灵活应用各种结构高效实现需求。

8,java数据结构, c语言版的数据结构,哪个好?

java数据结构和c语言版的数据结构,实现方式不同,但思想是一样的,一样好。原因如下:
数据结构本身是一种逻辑上的概念,它是独立于特定语言或者实现的,比如说链表,概念上说就是一组结点构成的数据结构,其中每个结点均带有后续结点信息。各种语言都可以实现链表,但实现的思路都是基于上面的逻辑概念。
因此,学习数据结构不必拘泥于某种特定语言,归根结底是要把握每个数据结构(逻辑上)的精髓,这个基础上,每种语言都可以实现特定的数据结构,差别只在于语法实现级别。
另外虽然Java/C++等语言都带有大量的标准类库,但这并不意味着可以忽视数据结构基础理论的学习。这直接关系到实际应用时,是只能死板套用现成模板,还是灵活应用各种结构高效实现需求。

9,java中有哪些数据结构

数据结构:
①数组 (Array)
在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数
据元素的集合称为数组。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组
元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指
针数组、结构数组等各种类别。
②栈 (Stack)
栈是只能在某一端插入和删除的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后
的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。
③队列 (Queue)
一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行
插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
④链表 (Linked List)
一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:
一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。
⑤树 (Tree)
树是包含n(n>0)个结点的有穷集合K,且在K中定义了一个关系N,N满足 以下条件:
(1)有且仅有一个结点 k0,他对于关系N来说没有前驱,称K0为树的根结点。简称为根(root)
(2)除K0外,k中的每个结点,对于关系N来说有且仅有一个前驱。
(3)K中各结点,对关系N来说可以有m个后继(m>=0)。
⑥堆 (Heap)
在计算机科学中,堆是一种特殊的树形数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指
二叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。
⑦图 (Graph)
图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,
边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。
⑧散列表 (Hash)
若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称
这个对应关系f为散列函数(Hash function),按这个思想建立的表为散列表。
差不多我就知道这些了~