Maximum in einem Integer-Array
public static int max( int[] array ) {
int i = array[0];
for( int j = 1; j < array.length; j++ ) {
if( array[j] > i )
i = array[j];
}
return i;
}
public static int max( int[] array ) {
if( array.length <= 0 )
return 0;
int i = array[0];
for( int j = 1; j < array.length; j++ ) {
if( array[j] > i )
i = array[j];
}
return i;
}
double[] d=new double[1000];
...
double max=0;
for(double x:d) if(x>max)max=x;
double max = Double.MIN_VALUE;
/**
* Gets the maximum element of a given array of doubles.
* @param arr Array of double, length > 0, not <tt>null</tt>.
* @return The maximum element.
*/
double max( double[] arr )
{
double max = arr[ 0 ];
for( int i = 1; i < arr.length; ++i )
if( arr[ i ] > max )
max = arr[ i ];
return max;
}
/**
* Gets the index of the maximum element of a given array of doubles or -1 if
* no such element exists.
* @param arr Array of double.
* @return The maximum element's index or -1.
*/
int max( double[] arr )
{
if( arr == null || arr.length == 0 )
return -1;
int max = 0;
for( int i = 1; i < arr.length; ++i )
if( arr[ i ] > arr[ max ] )
max = i;
return max;
}
public static double max( double[] array ) {
double max = array[0];
for( double d : array ) {
if( d > max) max = d;
}
return max;
}
double array[] = {};
double max;
if( array.length != 0 )
double max = max( array );
andre111 hat gesagt.:und derjenige der die funktion verwendet muss halt zuerst selber überprüfen ob array.length nicht 0 ist
Danke für die korrektur Beni.Beni hat gesagt.:Double.MIN_VALUE ist grösser als 0... aber mit Double.NEGATIVE_INFINITY würde es gehen.
RuntimeExceptions muss man nicht abfanegen, auch eigene Unterklassen nicht,andre111 hat gesagt.:Auch wenn man eine Exception wirft muss der, der die Funktion verwendet auf die Exception überprüfen, was dann letztendlich auf das selbe rauskommt. Eine eigene Exception wäre meiner Meinung nach sowieso sinnlos, weil man sowieso eine NullPointerException bekommen würde wenn die länge des arrays null ist.
Wenn man die länge des arrays in der funktion überprüfen lässt besteht weiterhin die frage welchen sinnvollen wert man zurückgebekommt wenn die länge null ist.
"Ganz einfache Lösung" heisst in diesem Fall das ich prüfen muss ob NaN rauskommt???robochris hat gesagt.:Wenn man die länge des arrays in der funktion überprüfen lässt besteht weiterhin die frage welchen sinnvollen wert man zurückgebekommt wenn die länge null ist.
Ehrlich gesagt, verstehe ich das Problem nicht. Wenn ein Null-Pointer reinkommt, kommt halt wieder ein Nullpointer raus. Oder z.B. NaN. Das ist doch eine ganz einfache Lösung.
robochris hat gesagt.:Wenn man die länge des arrays in der funktion überprüfen lässt besteht weiterhin die frage welchen sinnvollen wert man zurückgebekommt wenn die länge null ist.
Ehrlich gesagt, verstehe ich das Problem nicht. Wenn ein Null-Pointer reinkommt, kommt halt wieder ein Nullpointer raus. Oder z.B. NaN. Das ist doch eine ganz einfache Lösung.