ArrayList和LinkedList最主要的区别是基于不同数据结构 ArrayList是基于动态数组的数据结构,LinkedList基于链表的数据结构,针对这点,从时间复杂度和空间复杂度来看主要区别: 1.时间复杂度 对于随机访问,ArrayList通过索引快速定位元素位置;而LinkedLis ...
分类:
编程语言 时间:
2017-05-25 00:09:14
阅读次数:
246
一、常见的两种数组创建方式:1、创建时只指定数组长度,不指定数组元素,需要时按索引添加数组元素.如下:int[]i=newint[10];
i[0]=1;2、创建时即指定数组元素。int[]j=newint{1,2,3,4,5,6}二、对于创建数组,建议的做法是,先声明,不指定长度和元素。int[]i=null;在需要使用..
分类:
编程语言 时间:
2017-05-21 15:21:18
阅读次数:
174
List的4个实现类 ?ArrayList是一个数组队列,相当于动态数组(由数组实现,随机访问效率高,随机插入和删除效率低) ?LinkedList是一个双向列表,它也可以被当做堆栈、队列或双端队列进行操作 ?Vector是矢量队列,和ArrayList一样,它也是一个动态数组,但是Vector是线 ...
分类:
编程语言 时间:
2017-05-16 00:42:57
阅读次数:
178
new与数组 为了让new分配一个对象数组,必须在类型名之后跟[].在其中指明分配的数目; 初始化,C++11:可用花括号{}; 动态分配一个空数组是合法的; 释放动态数组: 智能指针与动态数组: 标准库提供了一个可以管理new分配的数组的unique_ptr版本 必须在类型后面加上空的[]; 注意 ...
分类:
编程语言 时间:
2017-05-14 18:52:49
阅读次数:
224
ArrayList是Array的扩展版,具有自动增长的特性,可以理解为动态数组. 其内部的实现关键是:用以存储任何对象的Object[] elementData, 并在增加元素的时候,检测目前数组的大小是否足以容纳新元素,不足则扩容-复制-添加,其扩容算法如下: JDK1.6 JDK1.7+ 在查资 ...
分类:
其他好文 时间:
2017-05-14 13:36:55
阅读次数:
315
ArrayList概述ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长。
ArrayList不是线程安全的,只能用在单线程环境下。
实现了Serializable接口,因此它支持序列化,能够通过序列化传输;
实现了RandomAccess接口,支持快速随机访问,实际上就是通过下标序号进行快..
分类:
其他好文 时间:
2017-05-08 14:31:19
阅读次数:
106
一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除 ...
分类:
编程语言 时间:
2017-05-04 23:22:19
阅读次数:
433
我们都知道 STL std::vector 作为动态数组在所分配的内存被填满时。假设继续加入数据,std::vector 会另外申请一个大小当前容量两倍的区域(假设 n > size 则申请 n+当前容量 的空间)。然后把当前内容复制到新的内存,以达到动态扩容的效果: size_type _M_ch ...
分类:
其他好文 时间:
2017-05-04 22:02:27
阅读次数:
3502
在函数中如果数组的个数不定,可以使用开放数组参数 实参可以接受静态数组和动态数组 procedure p1(a:array of Byte); begin ShowMessage( IntToHex( Integer(@a),2)); ShowMessage(IntToStr(a[0])); end ...
分类:
编程语言 时间:
2017-05-01 00:26:30
阅读次数:
299
队列是一种限定存取位置的线性表。同意插入的一端叫做队尾(rear),同意删除的一端叫做队首(front)。 队列具有FIFO的性质 队列的存储表示也有两种方式:基于数组的,基于列表的。基于数组的叫做顺序队列。基于列表的叫做链式队列。 一下是基于动态数组的顺序队列的模板类的实现。 顺序队列的抽象基类例 ...
分类:
其他好文 时间:
2017-04-30 20:34:34
阅读次数:
198