集合概述
学习java语言,就必须学习如何使用java的集合类。java中的集合类就像一个容器,专门用来存储java类的对象。
刚开始学习java可以通过数组来保存多个对象,但在某些情况下无法确定到底想要保存多少个对象,此时数组将不再适用,因为数组的长度不可变。例如:要保存一个学校的学生信息,由于不停有新生来报道,同时也有学员毕业离校,这时学生的数目很难确定。为了保存这些数目不确定的对象,JDK提供了一系列特殊的类,这些类可以储存任意对象,并且长度可变,统称集合。这些类都位于java.util包中,在使用时要注意导包问题,否则会出现异常。
集合类是可以往里面保存多个对象的类,存放的是对象,不同的集合类有不同的功能和特点,适合不同的场合,用以解决一些实际问题。
Java中的集合类可以分为两大类:一类是实现Collection接口;另一类是实现Map接口。(简单点来讲就是单列集合和双列集合)
Collection
单列集合的根接口,用于储存一系列符合某种规则的元素,它有两个重要的子接口,分别是List和Set。其中,List的特点是元素有序、元素可重复;Set的特点是元素无序并且不可重复。List接口的主要实现类有ArrayList和LinkedList;Set接口的主要实现类有HashSet和TreeSet。
Collection接口常见方法(来源于Java API)
Map
双列集合的根接口,用于储存具有键(Key)、值(Value)映射关系的元素,每个元素都含有一对键值,在使用Map集合时可以通过指定的Key找到对应的Value,例如根据学号就可以找到对应的学生。Map接口的主要实现类有HashMap和TreeMap。
Map常见方法(来源于API)如下:
集合类的特点
第一点,集合类这种框架是高性能的。对基本类集(动态数组,链接表,树和散列表)的实现是高效率的。一般人很少去改动这些已经很成熟并且高效的APl;
第二点,集合类允许不同类型的集合以相同的方式和高度互操作方式工作;
第三点,集合类容易扩展和修改,程序员可以很容易地稍加改造就能满足自己的数据结构需求。
集合类带来的好处
使用Java提供的集合类有如下功能:
(1)降低编程难度:在编程中会经常需要链表、向量等集合类,如果自己动手写代码实现这些类,需要花费较多的时间和精力。调用Java中提供的这些接口和类,可以很容易的处理数据。
(2)提升程序的运行速度和质量:Java提供的集合类具有较高的质量,运行时速度也较快。使用这些集合类提供的数据结构,程序员可以从“重复造轮子”中解脱出来,将精力专注于提升程序的质量和性能。
(3)无需再学习新的APl:借助泛型,只要了解了这些类的使用方法,就可以将它们应用到很多数据类型中。如果知道了LinkedList的使用方法,也会知道LinkedList怎么用,则无需为每一种数据类型学习不同的API。
(4)增加代码重用性:也是借助泛型,就算对集合类中的元素类型进行了修改,集合类相关的代码也几乎不用修改。
这里简单介绍了java集合类基本知识,后面还需要更深入地学习!