一、数组与集合的区别
区别 | 集合 | 数组 |
容量可变 | 可变 | 不可变 |
存储内容 | 引用数据类型 | 基本数据类型及引用数据类型 |
数据结构 | 多种(顺序表、链表、哈希表、树等) | 顺序表 |
元素个数 | size()可判断实际存储元素个数 | length只能确定容量大小,不能判断具体存储元素个数 |
特性 | 以类的形式存在,具有封装、继承、多态等特性,可调用属性方法 | 无 |
二、ArraysList与LinkedList区别与联系
1、联系:都实现了List接口,具有有序、不唯一的特点。
2、区别:
区别 | ArrayList | LinkedList |
底层结构 | 数组 | 双向链表 |
遍历与随机访问速度 | 快 | 慢 |
增加、删除 | 慢 | 快 |
三、Collection与 Collections的区别
1、Collection是一个接口,是List与Set集合的父类,无序、不唯一的特点。
2、Collections是集合中的工具类,用于操作集合类,提供一系列静态方法实现对各种集合的搜索、排序、线程安全化。
四、Vector与ArrayList区别与联系
1、联系:实现原理相同,功能相同,都是长度可变的数组结构,很多情况下可以互用。
2、区别:
区别 | Vector | ArrayList |
线程 | 安全 | 非安全 |
效率 | 低 | 高 |
扩容方式 | 变为原来2倍 | 增加50% |
五、HashTable与HashMap区别与联系
1、联系:实现原理相同,功能相同,底层都是哈希表,查询速度快,在很多情况下可互用。
2、区别:
区别 | HashTable | HashMap |
线程 | 安全 | 非安全 |
父类(或接口) | 继承Dictionary | 实现Map接口 |
null值 | 不允许 | key允许,value不允许 |