2.Set使用场景 API介绍: java.util.Set接口和java.util.List接口一样,同样继承自Collection接口, 它与Collection接口中的方法基本一致,并没有对Collection接口进行功能上的扩充, 只是比Collection接口更加严格了。与List接口不同 ...
分类:
编程语言 时间:
2018-07-03 23:51:13
阅读次数:
246
一 ,Lest 是继承了Collection ,特点是:无序唯一; 数据取出方式, for循环,迭代器 ,增强for循环 实现类有ArrayList、LinkedList、Vector、Stack等 。 1. ArrayList是基于数组实现的,是一个数组对列,可以增加数据元素,增加容量; 2. L ...
分类:
其他好文 时间:
2018-07-02 21:31:45
阅读次数:
391
java集合系列之LinkedList源码分析 LinkedList数据结构简介 LinkedList底层是通过双端双向链表实现的,其基本数据结构如下,每一个节点类为Node对象,每个Node节点包含该节点的数据和分别指向前一个前一个和后一个节点的引用。LinkedList内部维护两个成员变量fir ...
分类:
编程语言 时间:
2018-06-30 14:58:33
阅读次数:
166
时间复杂度的计算 1. 计算最坏情况下执行语句的次数(含有n) 2. 去掉常数项, 只保留最高项, 去掉系数 3. 最后的结果一般是1, logn, n, nlogn, n^2, 2^n, n!, n^n 4. 时间复杂度所消耗的时间的顺序是: O(1) 0) 1. 使用循环链表实现 2. 使用队列 ...
分类:
其他好文 时间:
2018-06-23 01:44:05
阅读次数:
174
栈和队列在实现上非常的相似,可以相互实现,但对比直接使用链表实现,并不高效。
分类:
其他好文 时间:
2018-06-22 15:30:55
阅读次数:
160
题目:输入一个链表,输出该链表中倒数第K个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如一个链表有6个结点,从头结点开始他们的值一次是1、2、3、4、5、6.这个链表的倒数第3个结点是值为4的结点。 解题思路:本题中所给的链表是单向链表,单向链表的结点只有从前往 ...
分类:
其他好文 时间:
2018-06-21 13:44:19
阅读次数:
143
List 有序可重复,可以通过下标操作元素 实现类 ArrayList:数组实现,线程不安全;查询慢,修改快 LinkedList:链表实现,线程不安全;查询快,修改慢 Vector:数组实现,线程安全 Stack:Vector的子类,提供堆栈操作,先进后出;push():尾部添加;pop():尾部 ...
分类:
编程语言 时间:
2018-06-16 17:55:38
阅读次数:
165
java.util.LinkedList LinkedList是实现了List接口的双链表实现,拥有list的所有方法并且允许所有元素(包括null)。 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地 ...
分类:
编程语言 时间:
2018-06-13 20:59:01
阅读次数:
186
记数据结构中元素的个数为n 列表(List) 列表由array实现,分配的内存是一块连续空间。调取、修改列表元素,返回列表长度,这些操作的时间复杂度都是O(1).而在列表头部进行的操作时间复杂度就比较高,为O(n)。 例如,在个人本地环境中,分别从列表的尾部和头部添加10万个元素,前者花了10ms, ...
分类:
编程语言 时间:
2018-06-08 14:24:49
阅读次数:
164
数组的加强型的for-Each循环很简单,我们再来看一下集合中的for-Each 循环又是怎么样的。我们都知道集合中的遍历都是通过迭代(iterator)完成的。也许有人说,也可以按照下面的方式来遍历集合,不一定非要使用迭代: 然而,这种方式对于基于链表实现的List来说,是比较耗性能的,因为get ...
分类:
其他好文 时间:
2018-06-06 01:12:00
阅读次数:
196