Code:
public class Methodenuebung {
private int[] array = null;
Methodenuebung()
{
array = new int[1];
}
// vergrößern des Arrays um anzahlElemente
void expand (int anzahlElemente)
{
// größeres Array anlegen
int[] array2 = new int[array.length + anzahlElemente];
int größe = array2.length;
// bestehendes array umkopieren
for(int i=0 ; i<größe ; i++)
{
array2[i] = array[i];
}
array = array2;
}
int max()
{
int max = array[0];
for(int i =0;i<array.length;i++)
{
// ist ein Element größer als das vorliegende Maximum, so wird sein Wert zu neuen Maximum
if(array[i] >max)
max = array[i];
}
return max;
}
int min()
{
int min = array[0];
for(int i=0;i<array.length;i++)
{if(array[i]<min)
min = array[i];
}
return min;
}
void put( int index, int neuerWert)
{
/* liegt die Position an der ein neuer Wert geschrieben werden soll, außerhalb der Dimensionn
, dann muss dass array vergrößert werden*/
if(array.length<= index)
{ expand(index - (array.length +1));}
array[index] = neuerWert;
}
int get(int index)
{
if(array.length>index)
return array[index];
// Fehler der angegebene Index ist zu groß
else
return -1;
}
void swap(int index1, int index2)
{
// tascht Inhalte von Array Elemente
int tausch = array[index1];
array[index1] = array[index2];
array[index2] = tausch;
}
float average()
{
// es muss gecastet werden
float average =(float) 0.0;
for(int i=0;i<array.length;i++)
{
average += array[i];
}
average = average / array.length;
return average;
}
void sort()
{
int obergrenze = array.length;
while(obergrenze >1)
{
for( int lauf = 1; lauf < obergrenze; lauf++)
{
if(array[lauf] < array[lauf-1])
swap(lauf,lauf-1);
}
obergrenze--;
}
}
/* Anmerkung:
* Die Obergrenze ist zu Beginn gleich der Dimension des Arrays.
* Dann : Gehe in einer Schleife vom 2. bis zum letzten sotierenden Feldelement.
* Wenn denn das eine Element kleiner als das andere ist , werden beide vertauscht
* Obergrenze wird nun um 1 verringert.*/
void print()
{
System.out.println("Ausgabe des Array");
for( int i=0; i<array.length;i++)
{
System.out.println('\t' + "Index" + i + "Wert: ");
System.out.println(array[i]);
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int [] array = {4,19,20,7,36,18,1,5};
Methodenuebung Array = new Methodenuebung();
for(int i=0;i<array.length;i++)
Array.put(i, array[i]);
Array.print();
System.out.println("Minimum " + Array.min());
System.out.println("Maximum " + Array.max());
System.out.println("Average" + Array.average());
Array.sort();
Array.print();
// TODO code application logic here
}
}
Hallo Leute , ich habe mich mal ein wenig ausgetobt mit Methoden. Doch wieso geht das nicht ...er zeigt mir fehler.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at Methodenuebung.put(Methodenuebung.java:62)
at Methodenuebung.main(Methodenuebung.java:142)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
kann das sein das ich mit try und catch das ganze behandeln muss ?