Eingelesene Daten in Array(Liste) abspeichern?

achalisma

Mitglied
Hi, ich habe ein Problem in einem Java-Programm. Ich habe mit einem Scanner Daten einlesen lassen (int- und String-Werte) und will diese jetzt irgendwo abspeichern, um dann alle aufzurufen, doch wie geht das? Ich dachte da an ein Array bzw. eine Array-Liste oder LinkedList, aber wie kann ich alle meine Werte irgendwo reinpacken und sie dann aufrufen? :D Wäre sehr dankbar :)
 

Robat

Top Contributor
Zunächst mal kannst du nicht 2 verschiedene Datentypen in ein Array / Collection packen. Du müsstest dir eine eigene Klasse schreiben um jeweils ein int und ein String in einem Objekt zu bündeln und das Array / die Collection dann mit diesen Objekten füllen.
 

Robat

Top Contributor
Hier mal ein kleiner Pseudocode
Java:
class Wrapper {
    int x;
    String y;
    Wrapper(int x, String y) { this.x = x; this.y = y; }
}
List<Wrapper> wrappers = new ArrayList<>();
Wrapper wrapper = new Wrapper(scan.nextInt(), scan.nextLine());
wrappers.add(wrapper);
 

achalisma

Mitglied
und außerdem wäre da glaube ich das problem, dass mehrmals etwas eingelesen soll, also wie bei einem switch case, dass bspw. case 1 3x eintritt und dort dann verschiedene werte eingelesen werden und auch abgespeichert werden sollen. das würde ja dann mit der lösung, die du vorgeschlagen hast nicht funktionieren oder?
 

Robat

Top Contributor
Das soll auch keine Lösung darstellen, sondern nur einen Weg aufzeigen, wie man 2 versch. Datentypen in einer Liste speichern kann. Du musst das ganze schon adaptieren ;)
Immer wenn du einen int + String Wert eingelesen hast, musst du daraus ein entsprechendes Objekt machen und es der Liste hinzufügen.

Code kannst du via [code=Java]Your Code[/code] posten.
 

Robat

Top Contributor
Also ich hab das Gefühl, dass wir an einander vorbei reden. Was ich gedacht habe, was du willst:
Du hast Daten (in einer Datei o.ä.) in der Form
Code:
int string
int string
int string 
..
und liest diese ein. Nun willst du jedes int-String paar in einer Liste abspeichern.
Hab ich dich da missverstanden?
 

achalisma

Mitglied
ich probier es mal in nem pseudocode darzustellen :D
Java:
public void gibAus() {
       int auswahl = scan.nextInt();
       switch (auswahl) {
       case 1:
           System.out.println("lese einen int ein");
           scan.nextInt();
       case 2:
       System.out.println("lese einen String ein");
       scan.nextLine();
...
}
die cases können sich hierbei wiederholen, weswegen dann sehr sehr viele variablen entstehen würden, die ich mit deinem ansatz erstellen müsste und das macht den code sehr unübersichtlich denke ich. also case 1 kann z.b. 4x eintreten und case 2 auch. das wären dann schon 8 variablen bei 2 cases und es gibt sehr viele :D
 

achalisma

Mitglied
Java:
public void blabla (){
           int zeugs = scan.nextInt();
           switch (zeugs) {
           case 1:
               System.out.println("irgendein int wert");
               scan.nextInt();
               System.out.println("irgendein String");
               scan.nextLine();
               System.out.println("irgendein int wert");
               scan.nextInt();
               System.out.println("irgendein String");
               scan.nextLine();
               break;
          case 2:
          das gleiche Spiel...         
          case 3:
          das gleiche Spiel...
}

Und diese eingelesenen Werte sind dann ja irgendwie im programm drin. Jetzt sollen alle diese Werte in eine Liste, damit ich sie später in einer Methode zusammen aufrufen kann. Ist das verständlicher? :D
 

mihe7

Top Contributor
Java:
private BlaBlubWrapper irgendwasEinlesen() {
       System.out.println("irgendein int wert");
       int irgendeinWert = scan.nextInt();
       System.out.println("irgendein String");
       String irgendeinString = scan.nextLine();
       return new BlaBlubWrapper(irgendeinWert, irgendeinString);
}

public void blabla (){
          List<BlaBlubWrapper> wirresZeugListe = new ArrayList<>();
           int zeugs = scan.nextInt();
           switch (zeugs) {
           case 1:
               wirresZeugListe.add(irgendwasEinlesen());              
               wirresZeugListe.add(irgendwasEinlesen());
               break;
          case 2:
          das gleiche Spiel...       
          case 3:
          das gleiche Spiel...
}

Die Methode blabla lässt sich wegen "das gleiche Spiel" reduzieren zu:
Java:
public void blabla (){
          List<BlaBlubWrapper> wirresZeugListe = new ArrayList<>();
          wirresZeugListe.add(irgendwasEinlesen());              
          wirresZeugListe.add(irgendwasEinlesen());
}
und da mit den Werten nichts weiter getan wird:
Java:
public void blabla (){}
 
Zuletzt bearbeitet:

mihe7

Top Contributor
Ist das verständlicher?
Nein. Wenn man nicht weiß, wie der Code aussehen sollte, ist es selten hilfreich das Problem in Form von Code zu beschreiben.

Schreib doch einfach, was Du tatsächlich willst - ohne Code oder programmiersprachliche Konstrukte. Eine Beschreibung ohne "int" oder "String", kein switch, keine Schleifen, etc. Mach dazu ggf. ein paar Beispiele. Dann kennt sich vielleicht auch der Rest der Welt aus.
 

DrZoidberg

Top Contributor
Du kannst Strings und int Werte in der selben ArrayList speichern. Hier ist ein Beispiel.
Java:
import java.util.ArrayList;
import java.util.Scanner;

public class Einlesen {
  public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    ArrayList<Object> list = new ArrayList<>();
   
    System.out.println("Gib 0 ein um die Eingabe zu beenden");
    int auswahl = 1;
    while(auswahl > 0) {
      System.out.println("Gib 1 ein um einen int Wert einzulesen und 2 für einen String");
      auswahl = scan.nextInt();
      switch(auswahl) {
        case 1:
           System.out.println("lese einen int ein");
           list.add(scan.nextInt());
           break;
        case 2:
          System.out.println("lese einen String ein");
          list.add(scan.nextLine());
          break;
      }
    }
   
    for(Object o: list) {
      if(o instanceof Integer) {
        System.out.println("int " + o);
      } else {
        System.out.println("String " + o);
      }
    }
  }
}
 
@Robat
Meine Lösung für das Problem wäre eine abstrakte Superklasse Value zu schreiben:
Java:
package string_int_einlesen;

public abstract class Value {
    public  Value() {}
    public void printValue() {}
}
und zwei Klassen die von dieser Erben. Ich habe die mal IntValue und StringValue genannt.
Wie die aussehen kann man sich ja denken.
Da man um zwei verschiedene Datentypen in einer List speichern zu können eine Superklasse braucht, habe ich eine ArrayList aus Values erstellt.
Ansonsten ähnelt meine Mainklasse der von @DrZoidberg :
Java:
package string_int_einlesen;

import java.util.ArrayList;
import java.util.Scanner;

public class Main {

    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        ArrayList<Value> values = new ArrayList<>();
        for(int i = 0; i <= 3;i++)
        {
            int value = sc.nextInt();
            switch(value)
            {
            case 1:
                System.out.println("String:");
                values.add(new StringValue(sc.nextLine()));
                break;
            case 2:
                System.out.println("Int");
                values.add(new IntValue(sc.nextInt()));
                break;
            default:
                System.out.println("Ungültige Eingabe nur 1 und 2 sind erlaubt");
            }
        }
        sc.close();
        for(Value v: values)
            v.printValue();
    }

}
 

Robat

Top Contributor
Theoretisch könnte das eine Lösung für dein Problem sein. Versuch trotzdem noch mal den Vorschlag von @mihe7 zu befolgen.
Schreib doch einfach, was Du tatsächlich willst - ohne Code oder programmiersprachliche Konstrukte. Eine Beschreibung ohne "int" oder "String", kein switch, keine Schleifen, etc. Mach dazu ggf. ein paar Beispiele. Dann kennt sich vielleicht auch der Rest der Welt aus.
Dann kann man auch sagen, ob es zu deinem Problem ggf. eine andere Lösung gibt
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Java eingelesene Zahlen Java Basics - Anfänger-Themen 2
J Eingelesene Datei im Histrogramm darstellen Java Basics - Anfänger-Themen 3
A Methoden Zugriff auf eingelesene Variablen in der main Methode (ohne Änderung der Parameterliste) Java Basics - Anfänger-Themen 4
Rayo Eingelesene Ascii Zahlen wie normale Zahlen prüfen Java Basics - Anfänger-Themen 4
J größte eingelesene Zahl ausgeben lassen Java Basics - Anfänger-Themen 12
D Eingelesene Datei verarbeiten Java Basics - Anfänger-Themen 11
A eingelesene String in buchstaben teilen Java Basics - Anfänger-Themen 9
S Von der Tastatur eingelesene Strings miteinander vergleichen Java Basics - Anfänger-Themen 4
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
Mady Daten von JList & Combobox in JTable adden Java Basics - Anfänger-Themen 2
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
W Daten in Echtzeit übernehmen Java Basics - Anfänger-Themen 5
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
E fehlermeldung bei richtigen login daten Java Basics - Anfänger-Themen 7
C Java Funktion: externe Daten vom Internet einbinden Java Basics - Anfänger-Themen 2
P Schiebefix - ArrayList überschreibt Daten Java Basics - Anfänger-Themen 3
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
E Wie gebe ich alle Daten zwischen zwei Zeitpunkten aus? Java Basics - Anfänger-Themen 2
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
M Tabellen- Daten laden Java Basics - Anfänger-Themen 2
A Klasse um daten zu einlesen Java Basics - Anfänger-Themen 26
A Literale für primitive Daten Typen Java Basics - Anfänger-Themen 4
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D Sportwetten Daten Atomatisch analysieren um optimale Strategie zu erhalten Java Basics - Anfänger-Themen 6
S Java Daten in Excel speichern Java Basics - Anfänger-Themen 1
S Daten speichern, ohne Datenbank Java Basics - Anfänger-Themen 8
L Daten aus ArrayList in Datenbank durchsuchen Java Basics - Anfänger-Themen 5
Shallty Daten speichern und ändern? Java Basics - Anfänger-Themen 32
M Sqlite table löschen und daten einfügen Java Basics - Anfänger-Themen 5
S Binäre-Suche bei unsortierten Daten Java Basics - Anfänger-Themen 7
N Was passiert wenn wir Daten auf der Festplatte abspeichern wollen? bzgl. BufferStreams Java Basics - Anfänger-Themen 9
T Daten von Objekten speichern Java Basics - Anfänger-Themen 7
A Minesweeper - Daten Java Basics - Anfänger-Themen 46
S Daten aus zwei Verschiedenen Tabellen in eine ArrayListe Java Basics - Anfänger-Themen 4
WPS1000 Input/Output Wie aktiviere ich den Daten Transfer von der RS232 in meine Java Applikation Java Basics - Anfänger-Themen 2
R Eigenes Protokoll zur Übermittlung von Daten zum Webserver? Java Basics - Anfänger-Themen 4
A Reader wohin werden Daten gespeichert? Java Basics - Anfänger-Themen 7
M Erste Schritte CSV-File einlesen und Daten verarbeiten Java Basics - Anfänger-Themen 5
S Daten aus eigenständiger .class-Datei abrufen Java Basics - Anfänger-Themen 1
E Daten dem Super Aufruf übergeben Java Basics - Anfänger-Themen 3
M jTabel mit Daten Füllen Java Basics - Anfänger-Themen 5
M Wie erzeuge ich die Differenz von zwei Daten in Stunden?? Java Basics - Anfänger-Themen 2
S Daten lesen und speichern Java Basics - Anfänger-Themen 26
S JTable mit Daten füllen Java Basics - Anfänger-Themen 7
L Java Programm zum Auswerten von Daten Java Basics - Anfänger-Themen 11
H Passwortmanager, Sicherheit der Daten Java Basics - Anfänger-Themen 12
G Best Practice Wie große "Tabellen" effizient durchsuchen und Daten händeln? Java Basics - Anfänger-Themen 15
U Daten aus Datei einlesen Java Basics - Anfänger-Themen 4
M Best Practice Daten-Import /Trabsfomration aus Textdatei Java Basics - Anfänger-Themen 12
R JTable Suchfunktion mit SQL Daten Java Basics - Anfänger-Themen 2
E Daten gehen nicht in Datenbank Java Basics - Anfänger-Themen 14
M Erste Schritte Speichern von mehreren Daten Java Basics - Anfänger-Themen 3
J Daten einer Textdatei in ein JTable importieren. Java Basics - Anfänger-Themen 3
F Daten von Thread an den aufrufenden zurückgeben Java Basics - Anfänger-Themen 22
C Endlosschleife bei füllen von Daten im JTable Java Basics - Anfänger-Themen 5
N Erste Schritte Dedicated Server \ Senden und Empfangen von Daten/Befehlen Java Basics - Anfänger-Themen 2
A Probleme beim zykl. aktulisieren von Daten in JTable Java Basics - Anfänger-Themen 3
D NPE beim laden von Daten aus MySQL Java Basics - Anfänger-Themen 9
P Einlesen von Daten via BufferedReader Java Basics - Anfänger-Themen 4
P Methoden ausgelesene (CSV-) Daten in Liste einer anderen Klasse einlesen Java Basics - Anfänger-Themen 0
F Daten aus Excel-Tabelle in Java importieren Java Basics - Anfänger-Themen 15
F Http Post von mehreren Daten Java Basics - Anfänger-Themen 5
F Daten auf Webserver laden - wiederholen bei Fehler Java Basics - Anfänger-Themen 0
W Best Practice problemabhängige Persistentmachung von Daten Java Basics - Anfänger-Themen 6
P Daten von Internetseite auslesen Java Basics - Anfänger-Themen 10
N Daten/Formular per POST an Firefox/Browser senden Java Basics - Anfänger-Themen 7
D Daten mit Apache POI in eine Excel Datei schreiben Java Basics - Anfänger-Themen 5
T JTable Daten aus txt datei Java Basics - Anfänger-Themen 3
T printf Daten aus der Tabelle in Excel übernehmen Java Basics - Anfänger-Themen 5
P zweidimensionales Array anlegen und mit DB-Daten füllen Java Basics - Anfänger-Themen 14
V Einlesen von Daten Java Basics - Anfänger-Themen 8
J TableView zeigt keine Daten an Java Basics - Anfänger-Themen 14
J Daten im Programm speichern Java Basics - Anfänger-Themen 14
N Interface Daten einem Implementierten Interface zuweisen Java Basics - Anfänger-Themen 37
O Probleme mit CSV Daten Java Basics - Anfänger-Themen 10
M Arrays: Trennung von Daten und Darstellung Java Basics - Anfänger-Themen 1
S Daten aus Array in Klasse übertragen Java Basics - Anfänger-Themen 12
M Wie sicher sind Daten im Java Programm? Java Basics - Anfänger-Themen 9
R Daten via Post an php Script senden Java Basics - Anfänger-Themen 1
B Probleme bei "Daten in CSV File schreiben". Java Basics - Anfänger-Themen 9
C Datei mit Daten einlesen und höchsten wert der zweiten Spalte ermitteln Java Basics - Anfänger-Themen 1
W (XML/XSL) Daten aus Eclipse in eine Klasse Laden. Java Basics - Anfänger-Themen 1
I Daten speichern ohne Datenbank Java Basics - Anfänger-Themen 20
D Daten von einem int in einen string Java Basics - Anfänger-Themen 5
L Daten aus Array Feld löschen Java Basics - Anfänger-Themen 2
T Input/Output Daten/Objekte einfach speichern Java Basics - Anfänger-Themen 5
IngoF GUI mit Thread Daten austauschen. Java Basics - Anfänger-Themen 6
S Daten aus anderen Dateien in neue Datei einlesen Java Basics - Anfänger-Themen 3
fLooojava Daten im selben Netzwerk an IP Java Basics - Anfänger-Themen 1
M Junit Tests durchführen, die eine Verbindung zu einer Daten erfordern Java Basics - Anfänger-Themen 3
K HashMap mit Daten aus ArrayList befüllen Java Basics - Anfänger-Themen 14
P Daten auslesen und in CSV speichern Java Basics - Anfänger-Themen 6
J Daten aus zweiter Klasse importieren Java Basics - Anfänger-Themen 33
C Daten speichern und laden Java Basics - Anfänger-Themen 6
S Je nach erhaltene Daten unterschiedlich reagieren (Design Pattern?) Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben