1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Fragen zu mehrdimensionalen Arrays in Java

Dieses Thema im Forum "PHP & Co." wurde erstellt von Aaron_Horowitz, 02.04.07.

  1. Aaron_Horowitz

    Dabei seit:
    19.01.07
    Beiträge:
    116
    1. Frage: Kann ein mehrdimensionaler Array aus unterschiedlichen Variablentypen
    bestehen? Bei einer Tabelle: können die 'äußeren' Zeilenfelder
    z.B. als String- , die 'inneren' Spaltenfelder als Integervariablen deklariert
    werden. Oder bleibt nichts anderes übrig als einen Variablentyp
    zu wählen und später die 'inneren' Felder als Integervariablen zu
    konvertieren?
    2. Frage: Wie kann ich Werte in einen mehrdimensionalen Array mit einer
    verschachtelten Schleife einlesen? Ich hab´s erfolglos auf folgende Weise
    versucht:
    Code:
    package verschachtelte_schleifen;
    import java.util.Scanner;
    public class verschachtelte_schleifen_1 {
    public static void main (String[] args) {
    	
    	// Deklarieren der Variablen
    	
    String[][] zeiten = new String[7][3];
    Scanner sc = new Scanner(System.in);
    String eingabe;
    int j=0;
    
    	// Verschachtelte Schleife zum Einlesen der Arrays
    	
    for (int i=0; i<7; i++) {
    	System.out.println("Geben Sie den " + (i+1) +". Namen ein: ");
    	eingabe = sc.next();
    	eingabe = zeiten[i][j];
    	for (j=0; j<3; j++) {
    		System.out.println("Geben Sie die " + (j+1) + ". Zeit ein: ");
    		eingabe = sc.next();
    		eingabe = zeiten[i][j];
    	
    	}
    }
    	
    }
    }
    
    Beim 2. Durchlauf der 'äußeren' Schleife kommt folgende Fehlermeldung:

    Vielleicht kann mir jemand von Euch weiterhelfen!
    Vielen Dank schon mal!!!
     
  2. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    Mehrdimensionale Arrays in Java sind meines Wissens immer Arrays of Arrays. Heißt: Nur der letzte hat Daten Deiner Wahl zum Inhalt. Alle Dimensionen vorher enthalten Arrays.
     
  3. MACRASSI

    MACRASSI Gelbe Schleswiger Reinette

    Dabei seit:
    21.11.04
    Beiträge:
    1.754
    1. Soweit ich weiß kann man ein array immer nur von einem Typen machen.

    2.)
    Code:
    String [][] array = new String [5][5];
        
        for(int i=0; i < sitzplatz.length; i++){
         for(int j=0; j < sitzplatz[i].length; j++){
           
           array[i][j]="test";
         }
       }
    Gruß Rasmus
     
  4. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    Anstelle von
    eingabe = sc.next();
    eingabe = zeiten[j];
    solltest Du mal
    eingabe = sc.next();
    zeiten[j] = eingabe;
    probieren oder einfach
    zeiten[j] = sc.next();
     
  5. Aaron_Horowitz

    Dabei seit:
    19.01.07
    Beiträge:
    116
    Hab den Code an den entsprechenden Stellen geändert: es kommt noch immer die selbe Fehlermedung!
     
  6. amarok

    amarok Galloway Pepping

    Dabei seit:
    24.12.04
    Beiträge:
    1.357
    mh ich bin kein java phreak, aber soweit ich weiß können mehrdimensionale arrays dort nur einen datentyp beinhalten.
     
  7. Aaron_Horowitz

    Dabei seit:
    19.01.07
    Beiträge:
    116
    Danke! Ein grundlegendes Missverständis bezüglich mehrdimensionaler Arrays ist mir durch Dein Beispiel soeben klargeworden!
     
  8. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    Probier es mal so:

    Code:
    import java.util.Scanner;
    
    public class schleife {
    	public static void main(String[] args) {
    
    		// Deklarieren der Variablen
    
    		String[][] zeiten = new String[7][3];
    		Scanner sc = new Scanner(System.in);
    
    		// Verschachtelte Schleife zum Einlesen der Arrays
    
    		for (int i = 0; i < 7; i++) {
    			for (j = 0; j < 3; j++) {
    				System.out.println("Geben Sie String " + "(" + i + "," + j
    						+ ")" + " ein: ");
    				zeiten[i][j] = sc.next();
    			}
    		}
    
    	}
    }
    
    
     
  9. Aaron_Horowitz

    Dabei seit:
    19.01.07
    Beiträge:
    116
    Mehrdimensionaler Arrays tabellennförmig ausgeben

    Das Einlesen des Arrays hab ich jetzt hinbekommen. Meine Absicht war, dass jedem Namen verschiedene Werte zugewiesen werden sollen.
    Daraufhin sollte dieser mehrdimensionale Array als Tabelle ausgegeben werden:

    Code:
    package beginn1;
    import java.util.Scanner;
    public class Beispiel1 {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		
    		// Deklaration der Variablen
    		
    		String [] name = new String [3];
    		int [][] werte = new int[3][4];
    		Scanner sc = new Scanner(System.in);
    		
    		// Einlesen der Namen
    		
    		for (int i=0;i<3;i++){
    			System.out.println("Geben Sie den " + (i+1) +". Namen ein: ");
    			name[i] = sc.next();
    		}
    		
    		for (int i=0;i<3;i++){
    			System.out.println(name[i]);
    		}
    		// Einlesen der Werte
    		
    		for (int i=0;i<3;i++){
    			System.out.println("Geben Sie die Werte von " + name[i] + " ein:");
    			for (int j=0;j<4;j++){
    				System.out.println("Wert " + (j+1) + " eingeben");
    				werte[i][j]=sc.nextInt();
    			}
    		}
    		
    		// Ausgabe der Werte
    		
    		for (int i=0;i<3;i++){
    			System.out.println(name[i]);
    			for (int j=0;j<4;j++){
    				System.out.println(werte[i][j]);
    			}
    		}
    		
    	}
    
    }
    
    Die Ausgabe hat allerdings einen ganz wesentlichen Schöheitsfehler: sie erfolgt natürlich nicht tabellenförmig, sondern untereinander - etwa so:
    Aaron
    22
    43
    54
    62
    Thomas
    33
    55
    .....
    Wisst Ihr welche Formatierungsmöglichkeiten es gibt, um Tabellen auszugeben?
     
  10. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
  11. Aaron_Horowitz

    Dabei seit:
    19.01.07
    Beiträge:
    116
    Ist leider nicht ganz dasselbe: die String-Formatierung ist zwar wichtig um eine Spaltenbreite anzugeben, aber mit einer Tabellenförmigen Ausgabe, wie ich sie mir vorstelle hat das nix zu tun. Statt:
    Tom 21
    Tom 23
    Tom 24
    Tom 31
    Eva 30
    Eva 32
    Eva 29
    Eva 23
    Otto 21
    Otto 23
    Otto 43
    Otto 54
    würde ich:
    Tom 21 23 24 31
    Eva 30 32 29 32
    Otto 21 23 43 54
    vorziehen!
     
  12. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    Dann mußt Du die Schleifen passend schreiben.
     
  13. commander

    commander Baldwins roter Pepping

    Dabei seit:
    25.02.04
    Beiträge:
    3.210
    Du kannst natürlich einen Object-Array verwenden und dann Strings und Integer (Achtung, das ist die _Klasse_ java.lang.Integer, nicht 'int' !) reinstecken, wie Du willst - aaaaber: Typsicherheit Adee, das musst Du selbst sicherstellen!

    Gruß,

    .commander
     
  14. ulukaii

    ulukaii Idared

    Dabei seit:
    22.02.07
    Beiträge:
    28
    Wenn Du gerne eine Ausgabe in Tabellenform möchtest, dann lege ich dir dieses Tutorial ans Herz. http://java.sun.com/docs/books/tutorial/uiswing/components/table.html

    Okay. Es mag vielleicht etwas zu umfangreich sein, dafür kannst Du das selbe Modell für eine Darstellung auf der Konsole und auch in einer GUI darstellen (Hier hilft wieder die schon erwähnte System.out.printf() Methode.

    Good Luck!
     
  15. Aaron_Horowitz

    Dabei seit:
    19.01.07
    Beiträge:
    116
    Würde mich als Anfänger alles ziemlich überfordern, - trotzdem danke für die Tipp´s!
     

Diese Seite empfehlen