hadoop的迭代器与Java的不同
用一个题目来解释
在reduce阶段将两张表合并输出,思路是创建一个集合,遍历每个reduce方法中的value,将对象放到集合中去
Hadoop与Java的迭代器不同,当使用for去遍历迭代器中的元素的时候,给到的这个value一直都是一个value,只是每次给的值不一样。即如果我们创建一个临时对象tmpOrderBean,会给这个对象开辟一个空间,value=new tmpOrderBean,这个是第一次运行时的等价代码,而第二次运行的时候只是改变了value的值,没有重新开辟内存,所以需要每次遍历的时候都开辟一个新的空间地址这样就可以把多个对象放进去了。
原理也可以这样解释: