概述

集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用。

类图如下:

java 集合的继承关系 java集合类继承关系_抽象类

1、Iterable与Iterator接口之间的区别

我看到好多网上的文章类图里面Collection 是继承Iterator接口,其实不是的,如果你们自己看源码的话是继承的iterable这个接口,而Iterator是个迭代器,通过iterable的这个方法返回的 iterator();

2、抽象类的作用

如果要自己实现一个集合类,去实现那些接口的方法会非常麻烦,工作量很大。这个时候就可以使用抽象类,这些抽象类中给我们提供了许多现成的实现,我们只需要根据自己的需求重写一些方法或者添加一些方法就可以实现自己需要的集合类,工作量大大降低。

3、Collection 继承关系

  • List 可以存放重复的内容
  • Set  不能存放重复的内容,所以的重复内容靠hashCode()和equals()两个方法区分
  • Queue  队列接口
  • SortedSet  可以对集合中的数据进行排序

4、Object类

在实际开发中经常会碰到区分同一对象的问题,一个完整的类最好覆写Object类的hashCode()、equals()、toString()三个方法。

5、集合的输出

  • Iterator: 迭代输出,使用最多的输出方式
  • ListIterator: Iterator的子接口,专门用于输出List中的内容
  • Enumeration
  • foreach
  • 在迭代时,不可以通过集合对象的方法操作集合中的元素,因为会发生ConcurrentModificationException异常。所以,在迭代器时,只能对元素进行判断,取出,删除的操作,如果想要其他的操作如添加,修改等,就需要使用其子接口,ListIterator。该接口只能通过List集合的listIterator方法获取。

6、集合类使用总结

java 集合的继承关系 java集合类继承关系_List_02