Java8集合框架
所谓集合,就是对象的容器,即可以容纳其他Java对象的对象。Java Collections Framework(JCF)为Java开发者提供了通用的容器,其始于JDK 1.2。
后续我将一步步分析集合中的关键容器实现原理,并结合阅读源代码来加深理解。
1.接口和实现
Java8的集合框架中,接口、抽象类以及具体的实现类组织如下:
Map
接口没有继承自Collection
接口,因为Map
表示的是关联式容器而不是集合。但Java为我们提供了从Map
转换到Collection
的方法,可以方便的将Map
切换到集合视图。
2.可迭代对象和迭代器
可迭代对象(即实现了Iterable
接口的对象),而迭代器则是可以遍历容器的一个对象。从Java集合的接口和实现架构图可以知道,任何一个容器都是实现了Iterable
接口,也就是说,每个容器都是可迭代对象。
而每个容器都对容器中的对象情况十分了解,也只有容器本身才能管理容器中的对象。因此,每个容器都会通过内部类的形式实现自己的迭代器,返回给客户端使用!
例如,下面这个使用增加for循环,来使用迭代器遍历容器的例子:1
2
3
4
5
6
7
8//使用增强for迭代
ArrayList<String> list = new ArrayList<String>();
list.add(new String("Monday"));
list.add(new String("Tuesday"));
list.add(new String("Wensday"));
for(String weekday : list){//enhanced for statement
System.out.println(weekday.toUpperCase());
}