Daten in ArrayList löschen

MrZylinder

Aktives Mitglied
Hallo Forum,

ich bin relativ neu in der Java-Welt und hab da mal eine Frage.

Ich möchte eine Textdatei auslesen und das ausgelesene in eine ArrayList speichern. Das funktioniert auch soweit super:
Java:
public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new FileReader("datei"));
		
		String lesen = br.readLine();
		int i = 0;
		List<String> list1 = new ArrayList<String>();
		
		for(i = 0; (lesen = br.readLine()) != null; i++) {
			list1.add(lesen);
		}
			System.out.println(list1);
			
	}		
}
Ich hab mir dann mal die Anzahl der Einträge ausgeben lassen. Es sind 4328 Einträge.

Jetzt kommt mein Problem: Ich will jetzt z.B. alle Einträge die etwas mit "XY" zu tun haben löschen. Geht das? ???:L
Ich könnte ja immer den Index mit angeben, aber bei 4328 Einträgen ist das ein bisschen viel.

Ist dafür überhaupt eine ArrayList geeignet? ???:L

Ich hoffe es kann mir jmd weiterhelfen.
Vielen dank schonmal im Voraus
 
B

bygones

Gast
wie waers die mit "XY" gar nicht zu speichern ?

ansonsten muesstest du ueber die Liste iterieren und jeden Eintrag ueberpruefen und bei einem Treffer diesen entfernen.

4328 sind nicht sehr viel, eine ArrayList ist schon dafuer geeignet, auch wenn sie nicht die beste ist bei vielen loeschoperationen
 

L-ectron-X

Gesperrter Benutzer
wie waers die mit "XY" gar nicht zu speichern ?
Das wäre die beste Variante. Schont auch Resourcen.

Ansonsten kann man (um dem Thema gerecht zu werden) unerwünschte Elemente so entfernen.
Die Objekte müssen dabei von hinten nach vorn gelöscht werden, weil es sonst Exceptions hagelt.
So:
Java:
for(int i = 0, j = list1.size()-1; j > i; j--) {
   if(list1.get(j).equals("XY")) {
      list1.remove(j);
   }
}

Code ungetestet!
 

jgh

Top Contributor
bzw im einfachsten Fall einfach so...:

Java:
for (i = 0; (lesen = br.readLine()) != null; i++) {
			if (!lesen.contains("XY")) {
				list1.add(lesen);
			}
		}

oder dir halt eine vernüftigen RegEx basteln und diesen nutzen...
 

MrZylinder

Aktives Mitglied
wie waers die mit "XY" gar nicht zu speichern ?

Hmmm....von der Seite hab ich das noch gar nicht betrachtet. Nur wie gehe ich das an? Kann ich dem FileReader Schlüsselwörter mitgeben die er lesen soll oder der ArrayList sagen: "Hey, speicher mir bitte nur folgende Wörter"?
 

MrZylinder

Aktives Mitglied
Hmm stehe ich jetzt aufm Schlauch?

Also ich hab in der Datei wo ich auslese z.B. folgendes stehn:

host_name = 123
contact_name = admin
is_flapping = 0
current_state = 0

So für mich sind eigentlich nur host_name und current_state von bedeutung.
Gehe ich jetzt hin und sag:
Java:
for (i = 0; (lesen = br.readLine()) != null; i++) {
            if (!lesen.contains("host_name=")) {
                list1.add(lesen);
            }
        }

Dann gibt er mir ja logischer weise immer alles aus. Weil die Bedingung ist: "Mach das wenn "host_name=" enthalten is. Oder?

Und bei der Variante gibt er mir auch wieder alles aus:

Java:
for (i = 0; (lesen = br.readLine()) != null; i++) {
            if (!lesen.equals("host_name=")) {
                list1.add(lesen);
            }
        }

Überseh ich irgendwas?

Das Problem ist ja auch das sich der Hostname immer ändern kann und current_state auch.
 
Zuletzt bearbeitet:

Michael...

Top Contributor
Das ! negiert den Ausdruck Du musst also prüfen ob der String "host_name =" oder "current_state =" enthält (contains) bzw. damit beginnt (startsWith)
Ansonsten ist "host_name=" natürlich nicht das selbe wie "host_name ="
 
T

TryToHelp

Gast
erstens, heißt das wenn nicht

und zweitens heißt das eine contains zu deutsch beinhaltet, also würde "Hallo Welt" bei contains "Hallo" wahr liefern aber equals für gleich falsch da "Hallo Welt" nicht gleich "Hallo" ist.
 

Warrior7777

Bekanntes Mitglied
Ich hoffe, dass ich Dich richtig verstanden habe. Du willst wissen, welchen Wert z. B. contact_name hat. Ich würde das so lösen:
Java:
if(line.startsWith("contact_name") //evt. weitere Krierien
//Das Speichern hast Du ja schon.

Bzw. Wenn die Zeile nicht damit beginnt:
Java:
if(line.contains("contact_name"))

Noch einen schönen Abend!

P. S.: Ich knausere mit Codeauszügen, weil ich mit einem 3GS schreibe... ;)
 

jgh

Top Contributor
Java:
for (i = 0; (lesen = br.readLine()) != null; i++) {
			if (lesen.startsWith("host_name")
					|| lesen.startsWith("contact_name")) {
				list1.add(lesen);
			}
		}
 

MrZylinder

Aktives Mitglied
So folgender Fortschritt hab ich:

Java:
for(i = 0; (lesen = br.readLine()) != null; i++) {		
				if((lesen.contains("host_name="))) {
					list1.add(lesen);
					}	
				}

Dies speichert mir dann alles was mit "host_name=" zu tun hat. Das is super - genau das was ich wollte.
Nun jetzt kommt noch dabei das ich die "current_state=" benötige.

Ich wollte das wie folgt einbauen:
Java:
for(i = 0; (lesen = br.readLine()) != null; i++) {		
				if((lesen.contains("host_name=")) && (lesen.contains("current_state="))) {
					list1.add(lesen);
					}	
				}

Jedoch is meine Ausgabe dann diese: []
Beides ist immer enthalten normal müsste das doch gehen...
 

jgh

Top Contributor
Wieso eine for- anstatt einer while-Schleife? Das i wird gar nicht benötigt.

hast natürlich Recht, der TO hat den Code-Schnippsel so gepostet...klar eine while-Schleife wäre sinniger, aber who cares ;)

mal abgesehen, dass ich dir die richtige Lösung weiter oben schon gepostet habe...liest du Zeile für Zeile ein und fragst die einzelne Zeilen ab.

UND da gibt es keine Zeile die beides enthält...ein [c]||[/c] also [c]oder[/c] wäre etwas sinnvoller...
 

MrZylinder

Aktives Mitglied
Ach irgendwie habe ich mich vertippt hab glaub nur ein | anstatt 2 || gemacht.

HEHE.


vielen Dank für eure Hilfe =) und für die schnelle Antwort =)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
P Schiebefix - ArrayList überschreibt Daten Java Basics - Anfänger-Themen 3
L Daten aus ArrayList in Datenbank durchsuchen Java Basics - Anfänger-Themen 5
K HashMap mit Daten aus ArrayList befüllen Java Basics - Anfänger-Themen 14
K In ArrayList Daten verändern Java Basics - Anfänger-Themen 8
R Daten aus ArrayList lassen sich nicht auslesen Java Basics - Anfänger-Themen 12
B ArrayList.clear - Daten in allen Referenzen weg Java Basics - Anfänger-Themen 2
R ArrayList mit Daten füllen Java Basics - Anfänger-Themen 12
E Arraylist mit Daten aus Vector füllen Java Basics - Anfänger-Themen 7
G Daten in ArrayList speichern Java Basics - Anfänger-Themen 44
G Object Daten aus Arraylist auslesen Java Basics - Anfänger-Themen 12
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
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
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
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
A Eingelesene Daten in Array(Liste) abspeichern? Java Basics - Anfänger-Themen 18
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
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