在映射集合类时,通常要考虑以下几个问题。
(1)明确集合中的具体类型。
在JDK 5.0中提出了范型的概念,主要是可以明确集合类中所保存对象的类型。通常的写法如下代码所示。
private Collection<CustomerEO> customers = new ArrayList<CustomerEO>();
其中,加粗的部分明确指明了Collection集合对象中存放的是CustomerEO对象。这可以避免在运行时导致的一些异常。
(2)定义时使用接口,初始化使用具体的类。
在定义集合类型时,通常使用接口如Collection、Set、List和Map等,但初始化时要明确指定所使用的类型。
l Collection可以初始化为ArrayList或HashSet,例如:
private Collection<CustomerEO> customers = new ArrayList<CustomerEO>();
或者
private Collection<CustomerEO> customers = new HashSet<CustomerEO>();
l Set可以初始化为HashSet,例如:
private Set<CustomerEO> customers = new HashSet<CustomerEO>();
l List可以初始化为ArrayList,例如:
private List<CustomerEO> customers = new ArrayList<CustomerEO>();
l Map可以初始化为HashMap,例如:
private Map<String,CustomerEO> customer = new HashMap<String,CustomerEO>();
(3)集合类的选择。
这四个常用的集合类不同的区别主要有以下所示,所以根据不同的情况来确定选择适合的集合类。
l Collection类是Set和List的父类,在未确定使用Set还是List时可使用。
l Set集合中的对象不能有重复,并且是无序的。
l List集合中的对象可以有重复,并且可以有序排列。
l Map集合是带有key和value值的集合。