最近开始学java的集合体系,对最近的学习做一个总结
集合框架是javaSE的重点,这一部分内容十分重要,学习了几天后,感觉还是要做一个总结,梳理一下知识体系
-
Collection是集合的根接口,没有直接实现的类,它有两个子接口List、Set
- List是有索引的,有顺序的集合,可以存储重复的元素,有ArrayList,LinkedList,Vector三个子接口
- ArrayList底层由数组实现,查询快,增删慢
- LinkedList底层由链表实现,查询慢,增删快
- Vector是线程安全的,效率低,已被淘汰
- Set是没有索引的,无序的集合,不存储重复的元素,有HashSet,LinkHashSet,TreeSet三个子接口
- HashSet底层由Hash算法实现,保证元素唯一,存储无序
- LinkedHashSet底层由链表实现,也有HashSet的元素唯一特性
- TreeSet底层由二叉树算法实现,用来排序
- List是有索引的,有顺序的集合,可以存储重复的元素,有ArrayList,LinkedList,Vector三个子接口
-
Map集合
-
Map集合不属于Collection,是以键值对形式存储数据的双列集合
-
Map集合的特点是键唯一,值不唯一
- HashMap
- HashMap,它根据键的HashCode值存储数据,访问速度很快,最常用,可以允许一条键为null,值可以有多条为null
- TreeMap
- TreeMap底层由二叉树算法实现,用来排序,比较少用
- Hashtable
- Hashtable已被淘汰了,继承自Dictionary类,已被废弃,它不允许键值为null,线程安全,效率低
- HashMap