Arrays

Hat man ein große Anzahl von Variablen mit dem gleichen Datentyp kann man sie anstatt einzeln in einem Array deklarieren.

String[] haustier = {"Hund", "Katze", "Maus"};

oder

int[] zahlen = {10, 20, 30, 40};

Dabei wird der Datentyp mit einer folgenden eckigen Klammer angegeben.

Man kann das Array auch erst leer anlegen und anschließend füllen.

int[] datenliste = new int[5];
Hier wird ein Array mit Platz für 5 Integerwerten angelegt. Die Größe (Länge) des Arrays kann nachträglich nicht mehr geändert werden.

Ausgabe:

System.out.println(haustier[0]);
Bei der Zählung wird mit der Null begonnen.

Ändern

haustier[2] = "Hamster";

Länge eines Arrays

System.out.println(haustier.length);

Durchlaufen des Arrays mit einer Schleife

for (int i = 0; i < haustier.length; i++) {
      System.out.println(haustier[i]);
}

Maximum berechnen

static public double getMaximum(int[] w) {
		double m = 0;
		for (int i = 0; i < w.length; i++) {
			if (w [i] > m){
			 m = w [i];
			}				
		}
		return m;
	}

Aufgabe:

Man hat eine Liste von Messwerten:  int[] messwerte= {3,4,5,2,8,4,8,7};

Programmiere eine Funktion zur

  1. Berechnung des Minimums.
  2. Berechnung der Summe
  3. Berechnung des Mittelwertes
  4. Vertauschung von 2 Elementen
  Quelltext
public class array2 {
	public static void main(String[] args) {		
		int[] messwerte= {3,4,5,2,13,4,5,8,4,8,7};			
		
		ausgeben(messwerte);
		tausche(2,3,messwerte);
		ausgeben(messwerte);
		
	} // ende main
	
	public static void ausgeben(int[] w) {  // gibt das Array aus
		for (int i = 0; i < w.length; i++) {
			System.out.print(w[i]+ " ");
		}
		System.out.println(); // Zeilenumbruch
	} // ende ausgeben
	
	public static void tausche(int i, int j, int[] w) {
		int merken = w[j]; // zwischenspeichern
		w[j] = w[i]; // w[i] an die j-te Stelle schreiben
		w[i] = merken; // j-tes Element an die i-te Stelle schreiben
	}// ende tausche
	

	
	public static int getMaximum(int[] w) {
		int m = w[0]; // erst mal als Maximum annehmen
		for (int i = 0; i < w.length; i++) { // Array durchlaufen
			if (w [i] > m){ // sollte das aktuelle Element größer sein
				m = w [i]; // Element als neues Maximum abspeichern
			}// ende if				
	}  // ende der for schleife
	return m; // Maximum ausgeben
	} //  ende der Funktion
 
} // ende class