集合框架

集合 & 数组的区别

1.集合是 Java API 所提供的一系列类,可以用于动态存放多个对象.
2. 集合与数组的不同在于:
集合是大小可变的序列 ,而且元素类型可以不受限定 ,只要是引用类型.
集合中不能放基本数据类型,但可以放基本数据类型的包装类.
3. 集合类全部支持泛型,是一种数据安全的用法.

ArrayList & Vector的区别

1.Vector是线程安全的,源码中有很多的 synchronized 可以看出,而 ArrayList 不是,导致 Vector 效率无法和 ArrayList 相比.
2. ArrayList 和 Vector 都采用线性连续存储空间,当存储空间不足的时候,ArrayList 默认增加为原来的 50%,Vector 默认增加为原来的一倍.
3. Vector 可以设置 capacityIncrement容量增长的参数,而 ArrayList 不可以.

数组 & ArrayList的区别

1.ArrayList 中存放的都是对象[引用类型] ,也可以向里面存入一个基本数据类型[自动装箱];
2. 存储内容不同:
Array 数组可以包含基本类型和对象类型;
ArrayList 只能包含对象类型;
需要注意:Array 数组在存放的时候一定是同种类型的元素;
ArrayList 就不一定了 因为 ArrayList 可以存储 Object.
3. 空间区别:
数组的空间大小是固定的, 空间不够时也不能再次申请,所以需要事前确定合适的空间大小;
ArrayList 的空间是动态增长的 ,如果空间不够它会创建一个空间比原空间大约 0.5 倍的新数组.然后将所有元素复制到新数组中,接着抛弃旧数组[每次添加新的元素的时候都会检查内部数组的空间是否足够]

ArrayList VS LinkedList
① 区别
ArrayList 是实现了基于动态数组的数据结构
LinkedList 基于链表的数据结构;
对于随机访问 get 和 set ,ArrayList 绝对优于 LinkedList 因为 LinkedList 要移动指针;
对于新增和删除操作 add 和 remove ,LinedList 比较占优势, 因为 ArrayList 要移动数据;
② 测试性能
在这里插入图片描述
注意:在删除元素的过程中LinkedList的remove方法调用查找节点的方法node(),node()方法中即使使用了二分查找法,还是很慢,而且如果查找的是两端速度还可以,若查找的是靠近中间的元素,速度就非常慢了.所以删除大量数据方面LinkedList的效率远低于ArrayList.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值