运用继承的知识学习集合
面向对象的三个基本特征“封装、继承、多态”,对于一个初学者来说,并不需要他们在程序设计中过多的使用这三个特征,重要的意义在于这三个特征有助于初学者理解java面向对象的设计思想,有助于逐步深入的学习java类库,从而熟练应用java进行程序开发、系统设计。
按照Java中“继承”的理论,一旦继承一个父类,那么子类将自动获得父类中所有的成员变量、方法等成员,在这里,我们尝试运用继承的知识来学习java的集合。
java集合有时也会被称为“容器”,可以将一些对象(对象的引用)存储到这个“容器”中,Java集合的功能强大,应用广泛。
我们来看一下集合体系的继承树:
能够看懂、理解类的继承树,是java程序员的一项基本技能。从这棵继承树中,我们读出以下信息(为了突出重点、循序渐进,我们省略对Queue接口体系的进一步分析):
1、Collection接口是Set接口、List接口、Queue接口的父接口;
2、Set接口是HashSet实现类、EnumSet实现类、SortedSet接口的父接口。SortedSet接口有一个TreeSet实现类,HashSet类有一个子类LinkedHashSet;
3、List接口是ArrayList实现类、LinkedList实现类、Vector实现类的父接口。Vector有一个子类Stack;
根据java的继承理论,由第一条信息,可以得出这样的结论:Collection接口里所定义的方法可以用于Set集合、List集合、Queue集合,了解了Collection接口的通用方法,也就学会了操作Set集合、List集合、Queue集合的一部分方法。所以,学习Collection接口对于集合的学习至关重要。
Collection接口里定义如下主要的方法:
- boolean add(Object o):向集合中添加一个元素,如果集合对象被改变了,则返回true。
- void clear():清除集合里的所有元素。
- boolean contains(Object o):返回集合里是否包含指定元素。
- boolean isEmpty():判断集合是否为空。集合长度为0时则返回true。
- Iterator iterator():返回一个Iterator对象,用于遍历集合元素。
- boolean remove(Object
o):删除集合中的指定元素o。当集合中包含一个以上元素o时,只删除第一个o元素,删除成功后返回true。 - Int size():返回集合里元素的个数。
- Object[] toArray():把集合转换成一个数组,集合元素转换成对应的数组元素。
Collection接口中定义了众多的方法,以上只是较为简单而且常用的几个方法,建议读者参考Java API文档来查阅其他方法。
下面我们写一个集合测试的例子
import java.util.*;
public class CollectionTest
{
public static void main(String[] args)
{
//创建一个集合,这是一个ArrayList集合对象
Collection sArrayList = new ArrayList();
//创建一个集合,这是一个HashSet集合对象
HashSet sHashSet = new HashSet();
//添加sArrayList集合元素
sArrayList.add("北京市");
sArrayList.add("上海市");
sArrayList.add("天津市");
//添加sHashSet集合元素
sHashSet.add("河北省");
sHashSet.add("山东省");
sHashSet.add("江苏省");
sHashSet.add("辽宁省");
//显示集合元素
System.out.println("sArrayList集合元素的个数:"+sArrayList.size()+" 集合的元素为:"+sArrayList);
System.out.println("sHashSet集合元素的个数:"+sHashSet.size()+" 集合的元素为:"+sHashSet);
//删除集合元素
sArrayList.remove("上海市");
sHashSet.remove("辽宁省");
//显示sArrayList集合元素
System.out.println("sArrayList集合元素的个数:"+sArrayList.size()+" 集合的元素为:");
//使用foreach来遍历sArrayList集合
for (Object city : sArrayList )
{
System.out.println(city);
}
//显示sHashSet集合元素
System.out.println("sHashSet集合元素的个数:"+sHashSet.size()+" 集合的元素为:");
//使用foreach来遍历集合
for (Object city : sHashSet )
{
System.out.println(city);
}
}
}
这个例子中,分别定义了ArrayList类、HashSet类的集合对象,这两个对象使用了相同的方法来添加、删除、显示集合元素,这些方法都是Collection接口的方法,ArrayList类、HashSet类通过继承Collection接口获得了这些方法。