Daten in Liste speichern

moessi91

Bekanntes Mitglied
Ich möchte gerne eine unbekannte Menge von Daten(2 Strings), in eine Liste speichern.
Diese sollen da nach dem Wert des ersten Strings Sortiert werden. Die daten werden aus einer Datenbank ausgelesen. Die Frage die sich mir stellt ist welche Liste ich verwenden soll, wie genau ich die Daten rein und rauß bekomme und wie ich sie da drinnen sortiere oder dass sie gleich sortiert eingelesen werden.

danke schon mal im voraus.
 

Network

Top Contributor
Was für eine Liste du verwendest, hängt davon ab wie genau du sie verwenden willst.

Ein Wert mitten aus der Liste rausgreifen, mehrmals: Hashmap
Die Werte nacheinander auslesen: ArrayList

Du kannst auch Anfangs eine ArrayList verwenden, und sollte diese zu langsam sein, diese durch eine Hashmap austauschen. Das ist garkein Problem.

In einer ArrayList kannst du die Werte mit "sort" sortieren.
Auslesen funktioniert zweierlei.
Entweder du suchst nach einem Wert, und bekommst als Ergebniss die Indexnummer in der Liste zurück.
Oder du suchst nach einer Position in der Liste, und bekommst den Wert an dieser Stelle zurück.

Das funktioniert mit:
Java:
getIndexOf( [String] )
// und:
get( [Nummer] )

Einfügen der Daten ist genauso leicht:
mit
Java:
liste.add( [Wert] )
fügst du einen Wert ans Ende der Liste hinzu.

Mit
Java:
liste.add( [Zahl], [Wert] )
fügst du einen Wert an eine bestimmte Stelle hinzu.


Alles weitere findest du, wenn du nach ArrayList googelst, und gleich das erste von Oracle nimmst.
 
Zuletzt bearbeitet:
M

Marcinek

Gast
Du machst dir eine Klasse "MeineDaten" mit zwei Attributen string1 und string2,

dann implementiet diese Klasse noch Comparable<String>

und bei compareTO musst du quasi das compare von String 1 aufrufen.
 

dehlen

Bekanntes Mitglied
*Pseudocode*

so musst du die textdatei mit deinen Strings lesen

Java:
import java.io.*;

class LiesEineDatei {
public static void main (String[] args) {
try {
File MeineDatei = new File ("MeinText.txt"); //Ein Filereader ist ein Anschlußstrom für Zeichen der sich mit einer Textdatei verbindet//
FileReader fileReader = newFileReader (meineDatei);

BufferedReader reader = new BufferedReader (fileReader); //Verkette den FileReader mit einem BufferedReader damit du effizienter lesen kannst. Er kehrt erst dann wieder zum Lesen zur Datei zurück wenn der Puffer leer ist//
String zeile = null; // Erzeuge eine String Variable die jeweils die Zeile aufnimmt während sie gelesen wird//

while ((zeile = reader.readLine()) !=null) { // Heißt: "Lies eine Textzeile und weise sie der String Variable namens Zeile zu.Solange die Variable nicht null ist gib die Zeile aus die gerade gelesen wurde"//
System.out.println(zeile);
}
reader.close();
} catch(Exception ex) {
ex.printStackTrace();
}
}
}
 

moessi91

Bekanntes Mitglied
Ja ich weiß ja nicht mal was für eine Liste ich genau verwenden sollte.
Hab mir schon hashmap oder arraylist ein bisschen angeschaut sieht aber alles ziemlich kompliziert aus.
Es werden eben eine Unbekannte menge an Strings aus der DB ausgelesen und dann sortiert in eine Combobox gefüllt.
So ist es genau gemeint.
@Network: hab die sort funktion bei einer array list irgendwie ned gefunden.
 

hdi

Top Contributor
Java:
public class MyData implements Comparable<MyData> {

	private String s1, s2;

	public MyData(String s1, String s2) {
		this.s1 = s1;
		this.s2 = s2;
	}

	@Override
	public int compareTo(MyData other) {
		return other.s1.compareTo(this.s1);
	}
}


Java:
public class MyDatabase{
 
    private List<MyData> myData = new ArrayList<MyData>();

    public void fill(){
        /* Verbindung zu deiner Datenbank erstellen, per Schleife alle Daten auslesen, MyData Objekte   erzeugen (entweder per DAO oder manuell), und sie der Liste per add(...) hinzufügen 
        */
    }
}

Java:
// an geeingeter Stelle:
ComboBox box = new ComboBox(myData.toArray());

Wie schon einer meiner Vorredner sagte operieren diese ganzen Sorters immer mit der compareTo-Methode, und die ist in der MyData Klasse eben so implementiert, dass sie den ersten String vergleicht (für Strings ist die compareTo-Methode schon in geeigneter Weise implementiert, deswegen kannst du das einfach dahin weiterleiten)

Und was die ArrayList angeht: Auch wenn sie dir vllt kompliziert erscheint, so ist es doch die einfachste Variante ;) Auf jeden Fall wär das hier die Datenstruktur der Wahl! HashMap wäre Unsinn, da eine Map keine Liste ist sondern eben eine Map, d.h.sie speichert nicht einfach nur n Einträge, sondern n Tupel mit Zuordnung, sowas hast du ja gar nicht.
 
Zuletzt bearbeitet:

Network

Top Contributor
Ja ich weiß ja nicht mal was für eine Liste ich genau verwenden sollte.
Hab mir schon hashmap oder arraylist ein bisschen angeschaut sieht aber alles ziemlich kompliziert aus.
Es werden eben eine Unbekannte menge an Strings aus der DB ausgelesen und dann sortiert in eine Combobox gefüllt.
So ist es genau gemeint.
@Network: hab die sort funktion bei einer array list irgendwie ned gefunden.

ArrayLists sind seeeehr einfach zu implementieren:

ArrayLists können alles beinhalten was du willst. Jedoch nur vom selben Datentyp.
Also eine ArrayList, die einen Integer beinhaltet, kann nicht gleichzeitig einen String beinhalten.
Java:
//Erster schritt: ArrayList definieren
ArrayList<[Typ]> [Name] = new ArrayList<[Typ]>;
//[Typ] = Typ der Werte die eingetragen werden sollen
// In deinem Fall steht da dann einfach nur "String" drin
//[Name] = Name der Liste

Java:
//Die ArrayList ist nun fertig, jetzt können wir Daten hinzufügen:
[Name].add( [wert] );
//[wert] = Was du eintragen möchtest.

Java:
//Nachdem wir nun nach der oberen Variante einen oder mehrere Werte eingetragen haben
//ziehen wir ein paar Werte wieder heraus:
[Name].get( [Nummer] );
//[Nummer] steht in diesem Fall, für die Postition des Wertes in der Liste, 
//den du zurück haben möchtest
//
//[Nummer] kann man im Grunde mit dem Namen eines Strings vergleichen,
//bloss dass die Namen, Nummern sind, und von 0 bis Listenende reichen.
 

hdi

Top Contributor
ArrayLists können alles beinhalten was du willst. Jedoch nur vom selben Datentyp.
@TO: Dem User Network ist das wohl klar, aber nur damit es nicht zu Missverständnissen bei dir kommt: Wenn hier vom "selben" Datentyp gesprochen wird, dann ist damit gemeint die Datentypen der Objekte in der Liste müssen dem Begriff der Polymorphie nach die "selben" sein, was nicht heißt, dass sie identisch sein müssen, sondern nur innerhalb der selben Vererbungshierarchie liegen müssen.

Also eine ArrayList, die einen Integer beinhaltet, kann nicht gleichzeitig einen String beinhalten.
Eben weil diese Klassen nicht in einer Vererbungshierarchie stecken. Aber was durchaus geht:

Java:
List<Object> list = new ArrayList<Object>();
list.add(new Integer(5));
list.add(new String("..."));

Denn Integer und String (sowie auch jede andere Klasse) erben von Object.

<Klugshice-Mode OFF> :D
 

moessi91

Bekanntes Mitglied
Habe das ganze folgendermaßen gelöst jedoch überschreibt es mir immer die vorher eingegebenen Daten.

Java:
ResultSet rs = sqlAnw.executeQuery("SELECT vorname, nachname, idkuenstler FROM artists ORDER BY vorname ASC");
		
		ArrayList <String[]> array = new ArrayList <String[]> ();

		
		while(rs.next())
		{
			sDaten[0] = rs.getString("idkuenstler");
			System.out.println("ID-Künstler: "+sDaten[0]);
			sDaten[1] = rs.getString("vorname");
			System.out.println("Vorname: "+sDaten[1]);
			sDaten[2] = rs.getString("nachname");
			System.out.println("Nachname: "+sDaten[2]);
			
			array.add(sDaten);
		}
		
		for(int i = 0; i<array.size();i++)
		{
			System.out.println("ID: "+array.get(i)[0]);
			System.out.println("ID: "+array.get(i)[1]);
			System.out.println("ID: "+array.get(i)[2]);
		}

Ausgabe:
ID-Künstler: 3641frates
Vorname: franz
Nachname: test
ID-Künstler: 2383testes
Vorname: test
Nachname: test
ID: 2383testes
ID: test
ID: test
ID: 2383testes
ID: test
ID: test
 

Michael...

Top Contributor
Das String Array muss innerhalb der while Schleife erzeugt werden.
[JAVA=6]while(rs.next())
{
sDaten[] = new String[3];
sDaten[0] = rs.getString("idkuenstler");[/code]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
A Eingelesene Daten in Array(Liste) abspeichern? Java Basics - Anfänger-Themen 18
P Methoden ausgelesene (CSV-) Daten in Liste einer anderen Klasse einlesen Java Basics - Anfänger-Themen 0
P Daten aus Liste Lesen Java Basics - Anfänger-Themen 6
babel Einen Vector/Liste mit Daten prüfen Java Basics - Anfänger-Themen 31
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
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
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
J Daten von einer PHP Datei ablesen Java Basics - Anfänger-Themen 1
B Klassen Zugriff auf Daten der Child-Klasse Java Basics - Anfänger-Themen 9
K Daten (im Sinne von Datum) aus Webseiten extrahieren Java Basics - Anfänger-Themen 6
S Erste Schritte Tage zwischen 2 Daten berechnen Java Basics - Anfänger-Themen 6
A daten vom 1d array in 2d matrix speichern Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben