首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ArrayList源码解析

    上在一篇中我们已经介绍过了ArrayList集合类是List接口的实现类,所以它会默认具有List接口的相关特性。所以在这里我们就可以说ArrayList是一个能够保证元素的插入顺序并且可以保存重复元素的集合类。除了上述的特性外,ArrayList和其它集合类相比还可以保存null元素到集合类中(并不是所有的集合类都支持此功能)。ArrayList集合类底层是通过动态数组的方式实现的。动态数组的意思是说ArrayList的底层数组大小是可以动态改变的。我们知道在Java中数组的大小是不可以改变的,也就是说如果数组初始化成功,那么在使用时就一定是这么大的数组了。如果在使用时超过了数组的最大索引时,那么虚拟机就会抛出异常。既然Java中数组的大小是不可改变的,那么ArrayList底层是怎么实现动态数组功能的呢。

    02

    STL(标准模板库)

    STL提供了一组表示容器 迭代器 函数对象 和算法的模板。容器是一个与数组类似的单元,可以存储若干个值。STL容器是同质的,即存储的值的类型相同;算法是完成特定任务(如对数组进行排序 又或 在链表中查找特定值)的处方;迭代器能够用来遍历容器的对象,与能够遍历数组的指针类似,是广义指针;函数对象是类似函数的对象,可以是类对象或函数指针。STL使得能够构造各种容器(数组 队列 链表等)和执行各种操作(包括搜索 排序和随机排列) STL并不是面向对象的编程,而是一种不同的编程模式-泛型编程,当然我们用一言两句可能说不清,我们可以通过一些实际应用真是了解到容器 迭代器 算法等

    02

    C语言中动态分配数组

    很多人在编写C语言代码的时候很少使用动态数组,不管什么情况下通通使用静态数组的方法来解决,在当初学习C语言的时候我就是一个典型的例子,但是现在发现这是一个相当不好的习惯,甚至可能导致编写的程序出现一些致命的错误。尤其对于搞嵌入式的人来所,嵌入式系统的内存是宝贵的,内存是否高效率的使用往往意味着嵌入式设备是否高质量和高性能,所以高效的使用内存对我们来说是很重要的。那么我们在自己编写C语言代码的时候就应该学会使用动态数组,这也就是我这篇博客要给大家讲的,我尽我所能的用一些简单的代码来讲解动态数组,希望我所讲的对你有所帮助。

    02

    动态创建数组[通俗易懂]

    使用运算符new也可以创建数组类型的对象,这时需要给出数组的结构说明。用new运算符动态创建一维数组的语法形式为: new 类型名【数组长度】; 其中数组长度指出了数组元素的个数,它可以是任何能够得到正整数值的表达式。 细节: 用new动态创建一维数组时,在方括号后仍然可以加小括号“()”,但小括号内不能带任何参数。是否加“()”的区别在于,不加“()”,则对数组每个元素的初始化,与执行“new T”时所进行初始化的方式相同;加“()”,则与执行“new T()”所进行初始化的方式相同。例如,如果这样动态生成一个整型数组: int *p=new int[10] (); 则可以方便地为动态创建的数组用0值初始化。 如果是用new建立的数组,用delete删除时所在指针名前面要加上“【】”,格式如下: delete[] 指针名;

    02
    领券