集合
来源:互联网 发布:ubuntu快捷键 编辑:程序博客网 时间:2024/06/10 11:43
集合分为两大类 :
1.Collection(单列)
List :存取一致 可重复 有索引 不排序
Vector 底层是数组 增删慢 查找快 线程安全 效率低
ArrayList 底层是数组 增删慢 查找快 线程不安全 效率高
LinkedList 底层是二叉树 增删快 查找慢 线程不安全 效率高
Set:存取不一致 不可重复 无索引
HashSet 底层由哈希算法实现
LinkedHashSet 底层是双向链表 但是也可以保证元素唯一 和HashSet原理一致是Set集合中唯一一个能保证怎么存就怎么取的集合对象
TreeSet 底层是二叉树
一般在开发中不需要对存储的元素排序 所以用HashSet比较多
TreeSet 面试时候比较多 两种排序
1.排序的(升序) 自然排序 根据ASCII表大小排序
2.排重
3.无序(存取不一致)
4.底层是一个二叉树(左序中序右序)
5.只能存储同一种类型 才能排序 不然就会出现转换异常
总结:
遍历集合的时候
List:
普通for循环 使用get()获取元素
调用 iterator() hasNext() next()获取元素
增强for循环 只要可以使用Iterator 的类都可以使用
Vector 集合用的是 Enumeration
Set:
调用 iterator()
增强 for
2.Map
HashMap
底层是哈希算法实现 针对键
LinkedHashMap 底层是链表 针对键
TreeMap
底层是二叉树 针对键
开发中 用 HashMap较多
遍历集合 要转成Set 在使用Iterator
keySet()
entrySet()