java中List、set、map的区别
元素特性 | 有序性 | 底层结构 | 线程 | 查询 | 增删 | 效率 | ||
List | ArrayList | 可重复 | 有序 | 数组 | 安全 | 快 | 慢 | 高 |
LinkedList | 链表 | 不安全 | 慢 | 快 | 高 | |||
Vector | 实现自增的对象数组 | 安全 | 快 | 慢 | 低 | |||
Set | HashSet | 唯一(hashcode(),equals()) | 无序 | 哈希表 | 不安全 | 时间复杂度O(1) | ||
LinkedHashSet | 唯一(哈希表) | 有序(链表插入) | 链表+哈希表 | 不安全 | 时间复杂度O(1) | |||
TreeSet | 唯一 | 有序 | 红黑树 | 不安全 | 时间复杂度O(log(n)) | 低 | ||
Map | HashMap | Key唯一,允许null(k,v) | 无序 | 数组+链表 | 不安全 | 高 | ||
TreeMap | Key唯一 | 有序 | 红黑树 | 不安全 | O(log(n)) | |||
HashTable | Key唯一,不允许null | 无序 | 哈希表 | 安全 | 时间复杂度O(1) | 低 |