Java容器连载(1)--总结

序言

Java的基础类库提供了丰富的容器接口、抽象类和实现类,使我们平常的开发工作轻松了许多,善于使用这些个基础类库,不仅能够减少错误的出现,而且还能提升我们代码的速度(基础类库都是经过各种打磨的,性能基本没得说)。在这里想说一下,如果在用Java想自己写一个小算法之前,请先去看看Java提供的API,也许仅仅经过一个小变通就能解决自己的问题了,这个时候,请不要造轮子,为了你自己,为了大家,为了后面维护你代码的人,请不要造轮子。

分类

Java提供的容器类的实现主要分以下两类:Collection和Map类型。

  1. Collection英文翻译是采集,搜集的意思,也就意味着放进去的东西是作为一个整体看待的,换句话来说:Collection里面的东西都是一个一个的Object
  2. Map英文翻译过来就是地图,映射的意思。其实地图就是按照一定比例尺映射真实的地理环境图而已。那么既然是映射关系,类似于函数一样:y=f(x),那么肯定要标识出来自变量(x)和函数值(y),也就是说Map比较突出x-y这种关系,换句话来说Map里面的东西是一对一对放进去的。

Java容器两大家族关系图

注意:这个图我省略了一下实现关系,例如ArrayList implements List 我给省略了,因为已经通过AbstractList实现过接口


从上图可以看到,Collection和Map没有任何交集,他俩是分庭抗礼,毕竟表示的不是同一种类型的数据结构,但是,我在想啊,他们都是装东西,然后肯定还是可以抽象出来一些共同的东西:装了多少了,还能装多少,能装多少等等这种基本的操作,翻译成方法就是:

  1. 装了多少了--->size()
  2. 还能装多少--->remainSize()
  3. 能装多少--->capacity()

至于contain和remove操作就不行了,毕竟Map是需要两个:key-value的形式,统一抽象起来比较有点困难

猜你喜欢

转载自juejin.im/post/5d1c2128e51d45773f2e8fa4