Umwandlung von Array zu ArrayList

Hey ich habe hier eine Aufgabe, in der ich eine txt datei mit Telefonnummern einlesen soll, die Duplikate entfernen, und anschließend diese in ein neues Dokument packen soll. Hatte ich geschafft unter Nutzung von einem Array. Allerdings ist mir aufgefallen, dass der Array ja variabel sein müsste falls die txt Datei mal länger ist und habe mich nun darin versucht das umzuwandeln.

Java:
//Name: 
//Uebung 1    Aufgabe 2b

import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.util.ArrayList;

class nummer {
	public static void main (String[]args) throws IOException{
		
		//Den Text aus der Datei Zeilenweise auslesen
		FileReader fr = new FileReader("Nr.txt");
		BufferedReader br = new BufferedReader(fr);
		ArrayList<String> oldArr = new ArrayList<String>();
		String zeile=br.readLine();
		
		//Die Zeilen in einem Array speichern (und testweise abfragen)
		int i=0;
		while (zeile!=null){
			oldArr.add(zeile);
			zeile=br.readLine();
		}
		
		//Jede zeile untereinander miteinander vergleichen, und falls eine doppelt ist diese 0 setzen
		int j=0;
		for (j=0;j<i-1;j++){
			for (int k=1;k<i;k++){
				if ([j].equals(oldArr[k])){
					if (oldArr[j]!=oldArr[k])
						oldArr[k]="0"; 
				}
			}	
		}

		//Die Werte des alten Array mit Ausnahme von 0 und null in das neue Dokument uebertragen
		FileWriter fw= new FileWriter ("keineDuplikate.txt");
		BufferedWriter bw=new BufferedWriter(fw);
		for (int z=0;z<oldArr.length;z++){
			if (oldArr[z]!="0"&&oldArr[z]!=null){
				bw.write(oldArr[z]);
				bw.newLine();
			}
		}	
		bw.close();
	}
}


Zeile 20 bis 25 habe ich bereits umgewandelt, aber bei 27 bis 31 fehlt mir jegliche Ahnung wie ich das jetzt umschreiben kann. Kann mir hier jemand aushelfen?
 
an deiner stelle würde ich die prüfung auf duplikate direkt beim hinzufügen machen, wodurch es zum einen einfacher und zum anderen viel schneller wird.
d.h. du liest eine zeile ein und fügst diese nur hinzu, wenn die nummer nicht schon existiert.
Also ungefähr:
Java:
zeile=br.readLine();
if(!list.contains(zeile)) {
  list.add(zeile);
}
 
nö, am anfang ist deine liste ja leer.
wenn eine nummer zum ersten mal auftritt, dann liefert !contains(...) true, da diese nummer eben noch nciht existiert => nummer wird hinzugefügt.
wenn dann später nochmal die gleiche nummer auftaucht, dann liefert !contains(...) false, da diese schon existiert
 

Neue Themen


Zurück
Oben