一、集合和数组的区别与联系
区别 | 集合 | 数组 |
存储内容 | 只能存储引用类型 | 既能存储基本数据类型,也能存储引用类型 |
容量 | 集合容量可以改变,size表示真实有效数据个数 | 数组长度固定,length只代表数组最多能存储多少数据,不能看到有效数据个数 |
数据结构 | 多种, | 单一,仅采用顺序表存储 |
形式 | 以类的形式存在,具有封装、多态、继承等特性。 | —— |
二、ArrayList和LinkedList区别和联系
1、联系:
- 都是实现了List接口,具有有序、不唯一的特点
2、区别:
区别 | ArrayList | LinkedList |
遍历、随机访问效率 | 高 | 低 |
添加、删除效率 | 低 | 高 |
底层存储结构 | 数组(顺序表) | 双向链表 |
三、Collection和Collections区别
Collection:是无序、不唯一的集合,有List、Set等子接口
Collections:是操作集合的工具类
四、Vector和ArrayList区别和联系
联系:底层结构相同,都是长度可变的数组
区别 | Vector | ArrayList |
线程 | 安全 | 非安全 |
效率 | 低 | 高 |
扩容规则 | 变为原来的2倍 | 变为原来的1.5倍 |
五、HashMap和 Hashtable区别和联系
联系:底层结构相同,都是hash表
区别 | Hashtable | HashMap |
线程 | 安全 | 非安全 |
效率 | 低 | 高 |
父类(接口) | 继承Dictionary | 实现Map |
允许null值 | 不允许 | key不允许,value允许 |