/** * Copyright (C) 2010-14 diirt developers. See COPYRIGHT.TXT * All rights reserved. Use is subject to license terms. See LICENSE.TXT */ package org.diirt.util.array.performance; import org.diirt.util.array.CollectionNumber; import org.diirt.util.array.IteratorNumber; /** * * @author carcassi */ public abstract class ArrayOperation { public abstract double compute(CollectionNumber collection); public static final ArrayOperation average = new ArrayOperation() { @Override public double compute(CollectionNumber collection) { IteratorNumber iter = collection.iterator(); double sum = 0; while (iter.hasNext()) { sum += iter.nextDouble(); } sum /= collection.size(); return sum; } }; public static final ArrayOperation sum = new ArrayOperation() { @Override public double compute(CollectionNumber collection) { IteratorNumber iter = collection.iterator(); double sum = 0; while (iter.hasNext()) { sum += iter.nextDouble(); } return sum; } }; }