11 2020 档案
摘要:当想要遍历集合时,Java为我们提供了多种选择,通常有以下三种写法: for循环 for循环,就是根据下标来获取元素,这个特性与数组十分吻合。 for (int i = 0, len = strings.size(); i < len; i++) { System.out.println(strin
阅读全文
摘要:基本概念 树(Tree)是n(n≥0) 个结点的有限集。n=0 时称为空树。在任意一棵非空树中: 1. 有且仅有一个特定的称为根(Root)的结点; 2. 当n>1 时,其余结点可分为m (m>0) 个互不相交的有限集T1 、T2、……、Tm,其中每一个集合本身又是一棵树,并且称为根的子树(SubT
阅读全文
摘要:无论是数组还是链表,其对数据的查询表现都比较无力,要想知道一个元素是否在数组或链表中,只能从前向后挨个对比。出现这个问题的根源在于,没有办法直接根据一个元素找到它存储的位置,而哈希表就是解决查询问题的一种方案。 哈希表与Hash函数 哈希表就是通过关键字来获取数据的一种数据结构,它通过把关键字映射为
阅读全文
摘要:数组 数组在内存中是一段连续的存储单元,每个数据依次放在每个单元中。 创建一个数组,必须声明其长度,以在内存中寻找合适的一段连续存储单元。这也意味着数组的大小是固定的,我们无法动态调整其大小。 想要获取数组中第i个元素,其时间复杂度是 O(1),因为可以根据其地址直接找到它。同理修改也是。 数组对查
阅读全文
摘要:数组 数组在内存中占据一段连续的内存,所有的数据在内存中连续排列。它的大小是固定的,这一特性使得数组对于插入操作并不友好,分析ArrayList时就会看到这种操作的复杂。但数组对于位置的访问是极其友好的,它支持所谓RandomAccess特性,这使得基于位置的操作可以迅速完成,其时间复杂度为O(1)
阅读全文