Ich versuche eine Datei zu lesen und sie an eine Klasse namens "Allabaque" zu übergeben, die einen String und zwei Listen hat. Wenn ich mit dem Lesen des ersten Abaques fertig bin, möchte ich die beiden Listen löschen, damit ich die Werte für die Texte erhalten kann. Wenn ich die Liste lösche, übergebe ich die neue Abaque mit den beiden leere Listen. Hier ist der Code:Wie lösche ich eine ArrayList, ohne die nächste Funktion zu beeinflussen?
public void importFrom(String filename) {
try (
FileInputStream fis = new FileInputStream(filename);
BufferedReader reader = new BufferedReader(new InputStreamReader(fis));) {
String line;
String line2;
int c = 0;
List<String> Pression = new ArrayList<>();
List<String> Couple = new ArrayList<>();
List<String> P2 = new ArrayList<>();
List<String> C2 = new ArrayList<>();
String Cle = "null";
while ((line = reader.readLine()) != null) {
if (c == 2 && !"|".equals(line)) {
String[] arg = line.split("-");
boolean u = Pression.add(arg[0]);
boolean u2 = Couple.add(arg[1]);
}
if (c == 1) {
Cle = line;
c = 2;
//System.out.printf("%s",Cle);
}
if ("|".equals(line)) {
c = 1;
if (!"null".equals(Cle)) {
//P2 = Pression;
//C2 = Couple;
addAbaque(new Abaque(Cle, Pression, Couple));//addAbaque(new Abaque(Cle,P2,C2));
Couple.clear();
Pression.clear();
}
}
}
} catch (IOException ioe) {
System.out.printf("Erreur import");
}
}
Die addAbaque Methode ist die einfache
public void addAbaque(Abaque abaque) {
mAbaques.add(abaque);``
}
Mit dem Debug Ich glaube, ich habe festgestellt, dass es ein Problem mit dem Gedächtnis, aber ich reaaly weiß nicht, wie es zu beheben.
Ich habe auch mit zwei Zwischenmitteilungen versucht, ich putte es wie Kommentare, aber immer noch nichts.
der Versuch ist wie das ** try {** nicht so das ** try (** –
@ YoucefLaidani OP verwendet [versuchen-mit-Ressourcen] (https://docs.oracle.com/javase/tutorial /essential/exceptions/tryResourceClose.html) –
ooh das ist das erste Mal, dass ich diese Art von ** try (** ich sollte darüber lernen, danke @Andy Turner –