Klasse MiniMaximizer
Ein Objekt der Klasse MiniMaximizer verarbeitet eine Folge von Paaren (Zahlenwert, Objekt) und merkt sich das Minimum und das Maximum dieser Zahlenwerte zusammen mit dem jeweils dazugehörigen Objekt.
Die Zahlenwerte sind vom Typ double.
public class MiniMaximizer<Type>
{
private double minval, maxval;
private Type minobj, maxobj;
private boolean empty;
public MiniMaximizer()
{
reset();
}
public void reset()
{
minval=Double.POSITIVE_INFINITY;
maxval=Double.NEGATIVE_INFINITY;
minobj=null;
maxobj=null;
empty=true;
}
public void add(double val, Type obj)
{
if (empty || val<minval)
{
minval=val;
minobj=obj;
}
if (empty || val>maxval)
{
maxval=val;
maxobj=obj;
}
empty=false;
}
public void add(double val)
{
add(val, null);
}
public double getMinVal()
{
return minval;
}
public Type getMinObj()
{
return minobj;
}
public double getMaxVal()
{
return maxval;
}
public Type getMaxObj()
{
return maxobj;
}
public boolean isEmpty()
{
return empty;
}
}
Wenn es nur auf die Zahlenwerte ankommt, ohne dass zugehörige Objekte zu berücksichtigen sind, lässt sich die Methode add auch ohne den zweiten Parameter, das Objekt, aufrufen.
Ein MiniMaximizer wird in folgender Weise benutzt. Mit der Methode add werden mehrere Paare (Zahlenwert, Objekt) hinzugefügt. Der MiniMaximizer merkt sich das Minimum und das Maximum dieser Zahlenwerte zusammen mit dem jeweils dazugehörigen Objekt. In diesem Beispiel liefert getMinObj das Objekt "minus 1" und getMaxObj das Objekt "vier".
import junit.framework.TestCase;
public class TestMiniMaximizer extends TestCase
{
public static void testMiniMaximizer()
{
MiniMaximizer<String> m=new MiniMaximizer<String>();
m.add(3, "drei");
m.add(-1, "minus 1");
m.add(4, "vier");
System.out.println(m.getMinObj()+" "+m.getMaxObj());
}
}
[up]
H.W. Lang mail@hwlang.de Impressum Datenschutz
Created: 06.02.2009 Updated: 19.02.2023
Diese Webseiten sind während meiner Lehrtätigkeit an der Hochschule Flensburg entstanden