程序员

java中的数据结构

2018-10-12  本文已影响133人  neko_nia

前言

之前遇到一个问题,具体是说: 当我们用HashMap的时候,是怎样考虑优化其性能的呢?当时就一脸懵逼,原来是因为hashmap的自动扩容影响了性能,后面查资料才知道,可以通过设置hashmap的合理的初始容量或者加载因子来优化。 工作了一段时间了,连这个都不知道表示很羞愧。然后就去查看了一些关于数据结构的知识。其实也常常听说数据结构包括链表,队列,栈,树和二叉树,图等。但是在java中具体的应用有哪些呢?抱着一种好奇的心态去整列了一下java中的数据结构。

大概整理如下图
大概结构图

我在开发过程中用的最多的就属hashmap和arrayList。树和二叉树看了很久还是不明所以,后面再逐步修改吧。

线性表

hash表(散列表)

java中的Map。其中的实线类有 HashTable,HashMap,WeakHashMap.其中weakhashMap是一种对key 弱引用map。写到这里就想起了hashmap的原理以及hashmap与hashset的区别等,然后可以参看hashmap的原理

树和二叉树

树是一种非线性结构,二叉树为度为2的树形结构,分为左子树和右子树。
二叉树概念以及存储结构--51CTO

图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。在图中的数据元素,我们称之为顶点(Vertex),顶点集合有穷非空。在图中,任意两个顶点之间都可能有关系,顶点之间的逻辑关系用边来表示,边集可以是空的。图的详解

树和图都没有接触过,目前还不知道java中的应用。
尝试整理文章,每天进步一丢丢,嘻嘻。

上一篇下一篇

猜你喜欢

热点阅读