【发布时间】:2012-12-20 07:47:06
【问题描述】:
我有一个 Iterable<MyRecord> records 。我遍历下面的记录并将其添加到 LinkedList 中,如下所示。
我的 iterable 有 3 条记录,它们都有不同的值。但最后虽然sortedList 包含3 条记录,但所有3 条都是一样的!!!。怎么会?
当我打印出内存位置时,所有3个都是一样的。我做错了什么?
【问题讨论】:
-
这可能有很多原因...您如何创建可迭代的记录?也许它们在可迭代的记录中已经相同了?而且......如果你有一个
Iterable<MyRecord> records不应该for循环也将记录读取为“MyRecord”而不是“AccountRecord” -
不能用
sortedList.addAll(records) -
@Chris 实际上在 hadoop 的 reduce 部分。在这里检查。 hadoop.apache.org/docs/r1.0.4/api/org/apache/hadoop/mapreduce/…, java.lang.Iterable, org.apache.hadoop.mapreduce.Reducer.Context)
-
你自己实现了
Iterable接口吗?如果是这样,您的iterator()实现可能是错误的。记录的类型是什么? -
@Chris 实际上是 MyRecord。对不起。
标签: java collections hadoop iterator