嗨,我正在 reducer 中执行一些计算并尝试将数据加载到 ArrayList 中。当我在稍后的代码点对 ArrayList 执行 get 操作时,ArrayList 中的所有对象都具有相同的值。
public ArrayList<some_class> temp = new ArrayList<some_class>();
//This is global variable
@Override
public void reduce(Key_class key, Iterator<some_class> values,
OutputCollector<Text, Text> output, Reporter reporter)
throws IOException {
if(this.output==null){
this.output=output;
}
while(values.hasNext())
{
//if i print here
//and do the following values.next().val1
//I'm getting the right result
temp.add(values.next());
}
System.out.println(temp.get(0).val1);//Wrong result
}
我得到如下输出:12/10/2012 10:13 12/10/2012 10:13
实际输出应为:12/10/2012 09:10 12/10/2012 10:13
感谢你的帮助。谢谢!!!