Array einlesen und ausgeben

Hallo liebe Leute!

[CODE lang="java" title="Zunächst wollte ein Array von der Konsole aus einlesen und ausgeben:"]import java.util.Arrays;
import java.util.Scanner;

public class TestOne {

public static void main(String[] args) {

int x = 0;
Ergebnis P = new Ergebnis(); // Klasse Ergebnis mit 2 Untermethoden
Scanner input = new Scanner (System.in);

System.out.println("Länge des ersten Array: ");
x = input.nextInt();

System.out.println("Den Array füllen: ");
int[] y = new int [x]; // y wird auf Länge von dem eingegebenen x gesetz
readInArray(x); // y soll zurückgegeben werden
System.out.println(Arrays.toString(y));
P.setArrayOne(y);

/*System.out.println("Länge des zweiten Array: ");
x = input.nextInt();

System.out.println("Den Array füllen: ");
int[] y = new int [x];
readInArray(x);
System.out.println(Arrays.toString(y));
P.setArrayOne(y);

P.vergleich();
System.out.println(Arrays.toString(P.Summe()));*/

}

public static int[] readInArray(int x) {
int[] y = new int [x];
int j;
for (int i=0; i<x; i++) {
Scanner input = new Scanner (System.in);
j = input.nextInt();
y = j;
}
return y;
}
}
[/CODE]

Und das habe ich dann als Ausgabe:

Java:
Länge des ersten Array:
3
Den Array füllen:
1
2
3
[0, 0, 0]

Warum werden die Speicherplätze in dem Array nach der Eingabe immer mit dem Wert 0 belegt? Was mache ich falsch?
 
G

Gelöschtes Mitglied 65838

Gast
Java:
readInArray(x); // y soll zurückgegeben werden
        System.out.println(Arrays.toString(y));
readInArray x liefert dir ein Array zurück und das schießt ins leere und dann Schreibst du int y das im moment diesen Status hat
Java:
int[] y = new int [x];

und das is leer


füg mal System.out.println(y) oben ein

und unten in deiner Methode bevor du return machst

da bekommst du die "Referenz" also zeiger Auf ein Objekt und dann kannst du sehen
wenns gleich ist dann gehts um das gleiche Objekt wenn nicht dann sind das 2 verschiedene
 
Java:
Länge des ersten Array:
3
Den Array füllen:
[I@73f792cf
1
2
3
[I@2ed94a8b
[0, 0, 0]

Ähmm. Dann sind das zwei verschiedene ... oder? Ich verstehe das aber trotzdem nicht. Sorry
 
G

Gelöschtes Mitglied 65838

Gast
ja das ist richtig dass es 2 verschiedene

Java:
y soll zurückgegeben werden
bei diesem kommentar hast du einen DenkFehler

nur weil oben ein Y array ist
und unten auch ein Y array ist heist es nicht dass es die gleichen sind

Java:
readInArray(x);
diese Zeile gibt dir irgendein array zurück aber es steht links kein " variable = " also wird das array weg geworfen

was du jetzt MÖCHTEST ist es

" yoben ist gleich dem Rückgabewert von readInArray"
 
:D
Java:
y = readInArray(x);

Länge des ersten Array:
4
Den Array füllen:
1
2
3
4
[1, 2, 3, 4]

... Magic - it's a kind of magic ... Aber warum akzeptiert der Compiler das nicht als eine und die gleiche Variable?

Und vielen lieben Dank.
 
G

Gelöschtes Mitglied 65838

Gast
naja das ist sozusagen das Lebens Umfeld der Variable

da gibts Lokale .. Globale Variablen und noch eins was ich vergessen hab
Das kurze Leben einer lokaler Java Variable (mein-javablog.de)

probier das mal aus ob ein Fehler kommt und dann google mal was Lokale Variablen sind und in wie lang diese "Existieren"
bzw warum kommt hier kein Fehler vom Compiler
Java:
public void test(int x){
for(int i = 0; i < x ; i++){
  
}
for(int i = 0; i < x ; i++){
  
}
}




aber warum kommt hier schon ein Fehler?
Java:
public void test2(int x){
int x = 0;
int x = 2;
}
 
Lokale V exisitiert nur innerhalb der Methode, wo sie initialisiert wurde. Meinst du das? (Ist es ok, wenn ich dich duze?). Abar wozu dann return? Auch wenn diese V lokal ist, ich gebe die doch zurück? Ich dachte, dass beim Aufrufen einer Methode in main der Output ebendieser Methode schon irgendwo zwischengespeichert ist und für weitere "Manipulationen" automatisch verfügbar ist. Für mich sieht das y = readInArray(x); irgendwie doppelt gemoppelt aus. Aber ich sehe ein, das bei mir das grundsetzliche Verstehen von Abläufen falsch ist, sowohl Syntax von Java als auch Semantik.

Vielen dank nochmals, muss erst mal probieren, das zu verdauen.
 
G

Gelöschtes Mitglied 65838

Gast
Lokale V exisitiert nur innerhalb der Methode, wo sie initialisiert wurde. Meinst du das? (Ist es ok, wenn ich dich duze?). Abar wozu dann return? Auch wenn diese V lokal ist, ich gebe die doch zurück? Ich dachte, dass beim Aufrufen einer Methode in main der Output ebendieser Methode schon irgendwo zwischengespeichert ist und für weitere "Manipulationen" automatisch verfügbar ist. Für mich sieht das y = readInArray(x); irgendwie doppelt gemoppelt aus. Aber ich sehe ein, das bei mir das grundsetzliche Verstehen von Abläufen falsch ist, sowohl Syntax von Java als auch Semantik.

Vielen dank nochmals, muss erst mal probieren, das zu verdauen.

Füg unten nochmal das System.out.println(y) ein

und oben schreibst du
System.out.println (readArray(x)) ein
und schau mal was da raus kommt
 
also mit oben und unten hab nicht ganz verstanden, wo genau ...

Java:
System.out.println("Länge des ersten Array: ");
        x = input.nextInt();
        
        System.out.println(readInArray(x));

        System.out.println("Den Array füllen: ");
        int[] y = new int [x]; // y wird auf Länge von dem eingegebenen x gesetz
        y = readInArray(x); // y soll zurückgegeben werden
        System.out.println(Arrays.toString(y));
        P.setArrayOne(y);
        
        System.out.println(y);

dann kommt folgendes:

Java:
Länge des ersten Array:
3
1
2
3
[I@73f792cf
Den Array füllen:
1
2
3
[1, 2, 3]
[I@2ed94a8b
 
G

Gelöschtes Mitglied 65838

Gast
Java:
public class TestOne {

    public static void main(String[] args) {



        System.out.println("Den Array füllen: ");
        int x = 5;
        System.out.println(readInArray(x));


    }

    public static int[] readInArray(int x) {
        int[] y = new int [x];
        for (int i=0; i<x; i++) {

            y[i] = i;
        }
        System.out.println(y);
        return y;
    }
}

so hatte ich es gemeint



ich hab den rest nur raus gelöscht dass es übersichtlich ist.. du kannst dein Zeug natürlich noch drin behalten
 
G

Gelöschtes Mitglied 65838

Gast
Den Array füllen:
2
[I@2cb4c3ab
[I@2cb4c3ab


sowas wird raus kommen nur was bedeutet das?

dazu findest du sicher was im internet mit Lokale Variablen...Referenzen....Globale Variablen
 
😩 ... Das es das gleiche Objekt ist, also die gleiche Variable (?) Okey, ich muss darüber bisschen meditieren 😂 ...

Ich verstehe zwar den Grundgedanken hinter diesen Unterscheidungen. Nur kann ich das nicht syntaktisch korrekt ausdrücken.

Danke ✋
 
G

Gelöschtes Mitglied 65838

Gast
Eine Variable enthält eine Referenz

public int[] gibt eine Referenz auf ein Array Zurück

sobald keine Variable mehr auf eine Referenz zeigt wird die Referenz weg geworfen
 

mihe7

Top Contributor
Um das ganze vielleicht nochmal etwas ausführlicher zu beschreiben: Objekte geistern irgendwo im Hauptspeicher rum. Damit wir sie im Programm bequem ansprechen können, speichern wir einen Verweis auf das Objekt (d. h. auf die Stelle im Hauptspeicher, an der das Objekt "lebt") in einer Variablen.

Die Lebensdauer einer Variablen ist nicht das gleiche wie die Lebensdauer eines Objekts. Beispiel:
Java:
public void methode() {
    String x = new String("ABC"); // neues Objekt vom Typ String, Adresse wird lokaler Variablen x zugewiesen.
    { // Block
        String y = x;  // die in x gespeicherte Adresse wird y zugewiesen
    }
    // y ist tot, das Objekt lebt weiter
    System.out.println(x);
}

Jetzt die Frage: wie lange lebt das Objekt?

Stellen wir uns mal vor, so ein Objekt würde ewig leben. Nicht nur, dass wir dann sehr schnell keinen Speicher mehr zur Verfügung hätten, es würde auch einfach viel Müll entstehen, denn nach dem Verlassen der Methode methode() können wir das Objekt nicht mehr verwenden, weil es nicht mehr erreichbar ist, da x außerhalb nicht existiert.

Diese Überlegung nutzt nun der Müllsammler (Garbage Collector) von Java: nur die Objekte, die noch erreichbar sind, werden noch benötigt, alles andere kann weg.

Im Code von @Joreyk, Zeile 21, wird nun der Wert von y, d. h. die Adresse auf das int-Array, zurückgegeben. Wenn der aufrufende Code diese Adresse speichert, ist das Array weiterhin erreichbar. Speichert man die Adresse nicht, kann man es nicht mehr erreichen. Damit lebt das Array (für uns unerreichbar) noch eine Zeit lang weiter, bis es der Garbage Collector abräumt.

Alles ganz einfach.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Wort einlesen Array ausgeben Java Basics - Anfänger-Themen 4
D Array Werte einlesen und ausgeben? Java Basics - Anfänger-Themen 8
B Datentypen Werte in einen Array einlesen und danach die beiden höchsten Werte wieder ausgeben Java Basics - Anfänger-Themen 3
T Array einlesen und ausgeben Java Basics - Anfänger-Themen 8
F Characters in int[] Array einlesen und wieder ausgeben Java Basics - Anfänger-Themen 5
I einen text von tastatur in array einlesen und auch ausgeben Java Basics - Anfänger-Themen 1
E Array in funktion einlesen und ausgeben Java Basics - Anfänger-Themen 4
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
KogoroMori21 Textdatei einlesen im Array (Selection Sort Algorithmus) Java Basics - Anfänger-Themen 3
C (char) Array einlesen Java Basics - Anfänger-Themen 8
P Array einlesen von Konsole Java Basics - Anfänger-Themen 8
D Eingaben in String Array einlesen Java Basics - Anfänger-Themen 12
F Zahlen aus Datei einlesen und in Array speichern Java Basics - Anfänger-Themen 2
A Ungeordnetes Array ordnen, Zahl einlesen und einordnen Java Basics - Anfänger-Themen 23
T Datei in Array einlesen "null" Java Basics - Anfänger-Themen 8
K .txt einlesen und in ein Array packen Java Basics - Anfänger-Themen 2
N Best Practice CSV einlesen - Variables Array?! Java Basics - Anfänger-Themen 8
E Erste Schritte txt.Datei mit BufferedReader einlesen und in 2D-Array abspeichern Java Basics - Anfänger-Themen 15
S Werte in Array einlesen Java Basics - Anfänger-Themen 2
J Integer in Array einlesen Java Basics - Anfänger-Themen 14
C Zeilen in Array einlesen und splitten? Java Basics - Anfänger-Themen 17
stylegangsta Input/Output Hat eclipse eine Macke oder mein Code Array Datei einlesen Java Basics - Anfänger-Themen 5
N Mehrdimensionales float Array aus .txt-Datei einlesen? Java Basics - Anfänger-Themen 17
B Probleme beim einlesen einer short variablen für einen Array Java Basics - Anfänger-Themen 1
G Erste Schritte Textdatei einlesen und in Array speichern Java Basics - Anfänger-Themen 5
A Datei in Array einlesen Java Basics - Anfänger-Themen 6
S Zeilenweises Einlesen in Array Java Basics - Anfänger-Themen 2
K Input/Output 6000 Zeilen einlesen und String-Array vergleichen? Java Basics - Anfänger-Themen 1
H Zeichenketten einlesen und dann in Array speichern Java Basics - Anfänger-Themen 6
C Einlesen in Array von Textdatei sehr langsam Java Basics - Anfänger-Themen 7
J Integer Werte in Array einlesen Java Basics - Anfänger-Themen 6
D Erste Schritte In Array einlesen Java Basics - Anfänger-Themen 15
B zahlenfolge einlesen und in array umwandeln Java Basics - Anfänger-Themen 7
M Methoden Daten aus einer SQL-Abfrage in eine mehrdimensionales Array einlesen Java Basics - Anfänger-Themen 7
T Anfänger hat Probleme mit Array einlesen ;) Java Basics - Anfänger-Themen 13
Semox Datentypen Einlesen von char in Array schlägt unerwartet fehl Java Basics - Anfänger-Themen 4
X Zahlenfolge in Int-Array einlesen? Java Basics - Anfänger-Themen 7
B aus .txt in array einlesen Java Basics - Anfänger-Themen 29
E Einlesen einer int und speichern in einem Array Java Basics - Anfänger-Themen 7
S Unbekannte Daten einlesen, speichern und in einem byte Array speichern Java Basics - Anfänger-Themen 3
S CSV Datei in Array einlesen Java Basics - Anfänger-Themen 25
P Zahlen aus Datei in Array einlesen Java Basics - Anfänger-Themen 21
B Strings aus Array einlesen klappt nicht Java Basics - Anfänger-Themen 5
A datei in ein 2dimensionales array einlesen? Java Basics - Anfänger-Themen 9
O String in array einlesen alle x zeichen Java Basics - Anfänger-Themen 15
W String in ein String-Array einlesen ? Java Basics - Anfänger-Themen 2
K Strings in Array einlesen Java Basics - Anfänger-Themen 3
G Datei einlesen und in einem Array ablegen? Java Basics - Anfänger-Themen 5
H text string alle 100 zeichen in ein 1D array einlesen ? Java Basics - Anfänger-Themen 8
J Text in vorgegebenes Array einlesen Java Basics - Anfänger-Themen 2
Jen Array einlesen, Int und Char Java Basics - Anfänger-Themen 57
J einlesen von datei, float und array und und und. Java Basics - Anfänger-Themen 7
M Datei einlesen & in Array speichern Java Basics - Anfänger-Themen 4
L zahlen in mehrdimensionales array einlesen Java Basics - Anfänger-Themen 3
E Array ueber Tastatur einlesen Java Basics - Anfänger-Themen 2
H Codetabelle Einlesen und in Array speichern Java Basics - Anfänger-Themen 1
S Einlesen einer Datei und ins Array speichern Java Basics - Anfänger-Themen 11
G Inhalt einer Textdatei in ein Array einlesen Java Basics - Anfänger-Themen 2
C Frage zu: String einlesen -> Array von Chars erhalten Java Basics - Anfänger-Themen 4
P Eine Datei einlesen und in einem Array speichern Java Basics - Anfänger-Themen 11
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben