为什么要学习Java集合类?
当我们用java编程的时候,经常使用int[] a=new int[50]; 去创建一个数组,可是如果面对:1.你不知道要存储的数据有多少条? 2.里面可能是int类型,也可能是String类型
的时候呢? 3.如果你不想存放重复的数据呢? ...
这个时候你就可以使用集合了,当然集合不只是能解决这些问题。
什么是Java集合类?
- 集合类存放在Java.util包中。
- 集合类分为 Set(集合)、List(列表)、Map(映射)
- 其中Set和List继承了Collection接口,map的接口是Map。
- 父类Set、List、Map符合单例模式,不能被实例化(错误示例:List list=new List();)。正确用法:List list=new ArrayList();
集合类的总结
Collection和Map的继承结构
Collection <-- List <-- Vector <-- Stack
Collection <-- List <-- ArrayList
Collection <-- List <-- LinkedList
Collection <-- Set <-- HashSet <-- LinkedHashSet
Collection <-- Set <-- SortedSet <-- TreeSet
Map <-- HashMap <-- LinkedHashMap
Map <-- SortedMap <-- TreeMap
List总结
- List不声明泛型可以存放不同类型的数据
- List可以有null
- 实例于List的ArrayList适合查询,查询速度快,不适合插入删除,相反LinkedList适合插入删除,不适合查询操作。
- Vector是基于Array的List,它是“Synchronized”(线程锁)的,这也是和ArrayList的唯一区别,这导致在性能上肯定要略于ArrayList。
- List的实现方式有链表、队列、堆栈、数组
Set总结
- Set的基础是HashMap,所以Set中的元素是不能重复的,使用add()方法的后者会覆盖前者。
- TreeSet是有序排列的Set
Map总结
- 使用Key和Value(键值对)存储数据,通过key取出数据。
集合类的使用方法
(未完待续)