Collection体现的集合总结 Collection |--List |--ArrayList 底层数据结构是数组,查询快,增删慢 线程不安全,效率高。 |--LinkedList 底层数据结构是链表,查询慢,增删快 线程不安全,效率高。 |--Vector 底层数据结构是数组,查询快,增删慢 线程安全,效率低。 |--Set 唯一 |--HashSet 底层数据结构是哈希表。 如何保证元素唯一性呢? 依赖两个方法。hashCode()和equals()。 以后都自动生成。 |--TreeSet 底层数据结构是二叉树。 如何保证元素唯一性呢?如何保证元素排序呢? 根据返回值是否是0,判断元素是否重复。 排序有两种方案: 元素具备比较性 实现Comparable接口 集合具备比较性 实现Comparator接口 5:在集合中的数据结构问题 ArrayXxx:底层数据结构是数组。查询快,增删慢。 LinkedXxx:底层数据结构是链表。查询慢,增删快。 HashXxx:底层数据结构是哈希表。跟两个有关。hashCode()和equals() TreeXxx:底层数据结构是二叉树。两种排序方式。Comparable接口和Comparator接口 6:什么时候,使用哪种Collection集合。 元素唯一吗? 唯一: Set 需要排序吗? 需要:TreeSet 不需要:HashSet 不知道,用HashSet。 不唯一: List 需要安全码? 需要:Vector 不需要:ArrayList和LinkedList 查询多:ArrayList 增删多;LinkedList 不知道,用ArrayList。 7:Collections (1)Collections是针对Collection集合操作的工具类。 (2)面试题: Collection和Collections的区别? (3)功能: 排序 查找 反转 最值 随机置换
|