java中比较重要必须要了解的包首先就是lang包、util包和io包了。
今天总结一下java.util包中比较常用的一些知识。Java集合类框架实际上就是java针对于数据结构的一种实现。
类集:实际上就是动态数组。
在Java的类集里面(java.util包)提供了两个最为核心的接口:Collection、Map接口。
用一张图大概的总结一下大框架,然后分块总结知识点。
这些都是比较常用的类,也是要重点掌握原理的类,需要大量阅读源码,明白其底层实现,知道它的优缺点、适用性等。
小结
先大概总结一下它们的特点,有一个大概的认知。阅读了几篇博文,总结若有偏差,欢迎评论赐教。
1.List关注事物的索引列表
2.Set关注事物的唯一性
3.Queue关注事物的被处理时间
4.Map关注事物的映射和键值的唯一性
- ArrayList:可以理解为一个可增长的数组,提供快速迭代和随机访问的能力。
- LinkedList:可以理解为一个双链表,提供快速插入删除的能力。
- Vector:是线程安全版本的ArrayList,但是性能低。
- HashSet:集合没有重复值,不关心元素顺序。
- LinkedHashSet:集合中没有重复值,关心元素插入顺序。
- TreeSet:集合中没有重复值,关心元素排序。
- Queue:用于保存将要执行的任务列表。
- LinkedList:实现先进先出队列。
- PriorityQueue:创建自然排序的优先级队列。
- HahsMap:键值对,不关心顺序。
- Hashtable:是线程安全版的HashMap,效率较低
- LinkedHashMap:键值对,关心插入顺序。
- TreeMap:键值对,关心元素自然排序。
Collection集合保存的数据是为了输出(Iterator)
Map集合保存的数据为了根据Key查找
1. 栈 Stack
- 是一个继承Vecto类的集合类
push() //入栈
pop() //出栈
peek() //返回栈顶元素但不出栈
应用:撤销、浏览器的返回、树的遍历、函数栈帧
2. 队列 Queue
- 是一个直接实现collection接口的接口。
add() //入队
poll() //出队
peek() //返回队头,不出队
实现
Queue queue = new LinkedList<>();
Collection和Map比较重要,总结在这里Collection总结
Map接口总结
~