常见Java数据结构&优缺点

数组

优点:查询快,如果知道索引可以快速地存取

缺点:删除慢,大小固定

有序数组

优点:比无序数组查找快

缺点:删除和插入慢,大小固定

优点:提供后进先出的存取方式

缺点:存取其他项很慢

队列

优点:提供先进先出的存取方式

缺点:存取其他项都很慢

链表

优点:插入快,删除快

缺点:查找慢(一个个节点查)

二叉树

优点:查找,插入,删除都快(平衡二叉树)

缺点:删除算法复杂

红-黑树

优点:查找,插入,删除都快,树总是平衡的(局部调整)

缺点:算法复杂

2-3-4树

优点:查找,插入,删除都快,树总是平衡的。类似的树对磁盘存储有用

缺点:算法复杂

哈希表

优点:如果关键字已知则存取速度极快,插入快

缺点:删除慢,如果不知道关键字则存取很慢,对存储空间使用不充分

优点:插入,删除快,对最大数据的项存取很快

缺点:对其他数据项存取很慢

优点:对现实世界建模

缺点:有些算法慢且复杂

时间: 2024-12-11 07:06:34

常见Java数据结构&优缺点的相关文章

Java 中常见的数据结构

1.数据结构有什么作用? 当使用 Java 里面的容器类时,你有没有想过,怎么 ArrayList 就像一个无限扩充的数组,也好像链表之类的.很好使用,这就是数据结构的用处,只不过你在不知不觉中使用了. 数据结构内容比较多,细细的讲解也是相对费功夫的,不可能达到一蹴而就.我就将常见的数据结构:堆栈.队列.数组.链表和红黑树 给大家介绍一下,作为数据结构的入门,了解一下它们的特点即可. 2.常见的数据结构 数据存储的常用结构有:栈.队列.数组.链表和红黑树. 栈 栈:stack,又称堆栈,它是运算

JAVA 泛型与常见的数据结构和集合

泛型与常见的数据结构和集合 集合&迭代器 集合体系结构图 由于不同的数据结构(数据的组织,存储方式),所以java为我们提供了不同的集合 不同的集合他们的功能都是相似的,不断向上提取,将共性抽取出来 Collection中的常用功能 boolean add(Object e): 向集合中添加元素 void clear():清空集合中所有元素 boolean contains(Object o):判断集合中是否包含某个元素 boolean isEmpty():判断集合中的元素是否为空 boolea

Java数据结构和算法之链表

三.链表 链结点 在链表中,每个数据项都被包含在'点"中,一个点是某个类的对象,这个类可认叫做LINK.因为一个链表中有许多类似的链结点,所以有必要用一个不同于链表的类来表达链结点.每个LINK对象中都包含一个对下一个点引用的字段(通常叫做next)但是本身的对象中有一个字段指向对第一个链结点的引用. 单链表 用一组地址任意的存储单元存放线性表中的数据元素. 以元素(数据元素的映象)  + 指针(指示后继元素存储位置)  = 结点(表示数据元素 或 数据元素的映象) 以"结点的序列&q

java数据结构与算法之顺序表与链表深入分析

转载请注明出处(万分感谢!): http://blog.csdn.net/javazejian/article/details/52953190 出自[zejian的博客] 关联文章: java数据结构与算法之顺序表与链表设计与实现分析 java数据结构与算法之双链表设计与实现 ??数据结构与算法这门学科虽然在大学期间就已学习过了,但是到现在确实也忘了不少,因此最近又重新看了本书-<数据结构与算法分析>加上之前看的<java数据结构>也算是对数据结构的进一步深入学习了,于是也就打算

Java数据结构学习—Collections类

java.util 类 Collections java.lang.Object java.util.Collections public class Collections extends Object 此类完全由在 collection 上进行操作或返回 collection 的静态方法组成.它包含在 collection 上操作的多态算法,即"包装器",包装器返回由指定 collection 支持的新 collection,以及少数其他内容. 如果为此类的方法所提供的 colle

《Java数据结构和算法》- 数组

Q: 数组的创建? A: Java中有两种数据类型,基本类型和对象类型,在许多编程语言中(甚至面向对象语言C++),数组也是基本类型.但在Java中把数组当做对象来看.因此在创建数组时,必须使用new操作符: int [] objArray = null; // defines a reference to an array objArray = new int[100]; // creates the array, and sets objArray to refer to it 或使用等价的

Java数据结构和算法(一)

Java数据结构和算法(一) 一.数据结构 数据结构是计算机存储.组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合.通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率.数据结构往往同高效的检索算法和索引技术有关. 数据结构的基本功能: 如何插入一条新的数据项 如何寻找某一特定的数据项 如何删除某一特定的数据项 如何迭代的访问各个数据项,以便进行显示或其他操作 这几种结构优缺点如下:先有个大概印象,后面会详细讲解 二.算法 算法简单来说就是解决问题的步骤. 在 Java

java数据结构和算法10(堆)

这篇我们说说堆这种数据结构,其实到这里就暂时把java的数据结构告一段落,感觉说的也差不多了,各种常见的数据结构都说到了,其实还有一种数据结构是"图",然而暂时对图没啥兴趣,等有兴趣的再说:还有排序算法,emmm....有时间再看看吧! 其实从写数据结构开始到现在让我最大的感触就是:新手刚开始还是不要看数据结构为好,太无聊太枯燥了,很容易让人放弃:可以等用的各种框架用得差不多了之后,再回头静下心来搞搞数据结构还是挺有趣的:废话不多说,开始今天的内容: 1.二叉树分类 树分为二叉树和多叉

【译】常见 Java 异常解释(恶搞版)

常见 Java 异常解释:(译者注:非技术角度分析.阅读有风险,理解需谨慎o(╯□╰)o) java.lang ArithmeticException 你正在试图使用电脑解决一个自己解决不了的数学问题,请重新阅读你的算术表达式并再次尝试. ArrayIndexOutOfBoundsException 请查看 IndexOutOfBoundsException.不同之处在于这个异常越界的元素不止一个. ArrayStoreException 你已用光了所有数组,需要从数组商店中购买更多的数组. C