如何用Java编写简单的代码来迭代稀疏向量中的活动元素?
假设我们有这样的向量:
Vector sv = Vectors.sparse(3, new int[] {0, 2}, new double[] {1.0, 3.0});
我正在尝试使用 lambda 或 Function2(来自三个不同的导入,但总是失败)。如果您使用 Function2,请提供必要的导入。
如何用Java编写简单的代码来迭代稀疏向量中的活动元素?
假设我们有这样的向量:
Vector sv = Vectors.sparse(3, new int[] {0, 2}, new double[] {1.0, 3.0});
我正在尝试使用 lambda 或 Function2(来自三个不同的导入,但总是失败)。如果您使用 Function2,请提供必要的导入。
阿德里安,这里是你如何使用foreachActive
稀疏的方法Vector
AbstractFunction2<Object, Object, BoxedUnit> f = new AbstractFunction2<Object, Object, BoxedUnit>() {
public BoxedUnit apply(Object t1, Object t2) {
System.out.println("Index:" + t1 + " Value:" + t2);
return BoxedUnit.UNIT;
}
};
Vector sv = Vectors.sparse(3, new int[]{0, 2}, new double[]{1.0, 3.0});
sv.foreachActive(f);
这将通过稀疏向量和输出:
Index:0 Value:1.0
Index:2 Value:3.0
有4个进口:
import org.apache.spark.mllib.linalg.Vector;
import org.apache.spark.mllib.linalg.Vectors;
import scala.runtime.AbstractFunction2;
import scala.runtime.BoxedUnit;