根据《java编程思想》里面的说法,java集合又叫容器,按照单槽和双槽分为两类,Collection和Map,这两个都是接口。
一、Collection
Collection下面又分了三个子接口,分别是Set,List和Queue,他们的特性分别是:
1.Set:元素唯一,即Set中的元素永远不可能重复,跟数学中的集合概念是一样的。它的所有实现类都有相同的特征。
主要实现类有三个:HashSet,LinkedHashSet,TreeSet
- HashSet的底层实现是HashMap中的key,因此它的特点是无序不重复;
- LinkedHashSet底层实现是LinkedHashMap,特点是元素变得有序了。这里的有序指遍历顺序和插入顺序相同。
- TreeSet的底层实现是TreeMap,也是有序的,这里的有序指按照元素本身的大小排序,对于Integer、String,本身已经实现了Comparable接口,所以他们是可比较的。开发者自定义的对象,需要自己实现Comparable接口,以方便程序执行元素的比较。
2.List:有序,List是有序可重复的,这里的有序也是只遍历顺序和插入顺序相同。最常用的实现类:
- ArrayList底层实现是数组,所以查询效率高,增删效率低;
- LinkedList底层实现是链表,长于插入删除,查询效率低。
3.Queue:队列,特点是先进先出,只允许在队列前端删除,队列后端插入,常用实现类PriorityQueue.
二、Map
如果说数组和List实现了下标和元素对象的映射,那么Map就实现了对象和对象之间的映射。
主要实现类:HashMap,LinkedHashMap和TreeMap
HashMap的底层使用了哈希表,可以实现快速的查找。
LinkedHashMap最大的特点是key值有序了,遍历顺序和插入顺序相同。
TreeMap的底层是红黑树,新插入的元素会跟Map中原有元素进行比较,并插入到该插入的位置。TreeMap中对象,必须实现Comparable接口。
原文地址:https://www.cnblogs.com/wangbin2188/p/9001335.html
时间: 2024-11-10 07:11:03