Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hey,
also zur Zeit beschäftige ich mich mit Listen.
Nun glaub ich, dass ich beim Implementieren Fehler mache. Weiß aber nicht genau wie genau das funktioniert.
Code:
class DateiListe implements DateiVerarbeiter
{
private List<File> _dateien;
private String _gibName;
/**
* Zu Beginn ist eine DateiListe leer.
*/
public DateiListe()
{
_dateien = new ArrayList<File>();
}
/**
* Fuegt die uebergebene Datei zur DateiListe hinzu.
*/
public void verarbeite(File datei)
{
_gibName = datei.getName();
for (int k=0; k < datei.length(); k++)
{
_dateien.add(datei);
}
}
/**
* Schreibt alle Eintraege auf die Konsole, zusammen mit ihrem Index. Beispiel:
* 0. config.sys
* 1. autoexec.bat
* 2. command.com
*/
public void schreibeAufDieKonsole()
{
System.out.println(_dateien);
}
bei der Methode schreibeAufDieKonsole() wird mir nur ein Eintrag zurückgeliefert, wenn ich aber das " System.out.println(_dateien);" in die Methode verarbeite() schreibe, funktioniert das ganz normal. Ich habe es mit einer Forschleife versucht, die gibt mir aber leider nur die eine Datei öfters aus. Wie kann ich da _dateien so inkrementieren dass ich die nächste Datei anspreche bzw in der Konsole aufrufe? Und wie füge ich die Dateien richtig zur ArrayListe hinzu?
/**
* Schreibt alle Eintraege auf die Konsole, zusammen mit ihrem Index. Beispiel:
* 0. config.sys 1. autoexec.bat 2. command.com
*/
public void schreibeAufDieKonsole() {
for (int i = 0; i < _dateien.size(); i++)
System.out.println(i + ".\t" + _dateien.get(i).getName());
}
/**
* Schreibt alle Eintraege auf die Konsole, zusammen mit ihrem Index. Beispiel:
* 0. config.sys 1. autoexec.bat 2. command.com
*/
public void schreibeAufDieKonsole() {
for (int i = 0; i < _dateien.size(); i++)
System.out.println(i + ".\t" + _dateien.get(i).getName());
}
Im prinzip schon. Kommt auch dasselbe hinaus wie bei mir. Das kommt raus:
....
48430. __SHELL2.java
48431. __SHELL2.java
48432. __SHELL2.java
48433. __SHELL2.java
....
Wobei bei deinen Code geht es nochmal weiter
...
38315. VerzeichnisWanderer.html
38316. VerzeichnisWanderer.html
38317. VerzeichnisWanderer.html
38318. VerzeichnisWanderer.html
38319. VerzeichnisWanderer.html
38320. VerzeichnisWanderer.html
...
Aber jede Datei wird diesmal viel öfters ausgegeben als sonst. Wieso das?
Ich bin mir sicher, ich habe irgendwas falsch gemacht bei der ArrayList...
/**
* Schreibt alle Eintraege auf die Konsole, zusammen mit ihrem Index. Beispiel:
* 0. config.sys 1. autoexec.bat 2. command.com
*/
public void schreibeAufDieKonsole() {
for (int i = 0; i < _dateien.size(); i++)
System.out.println(i + ".\t" + _dateien.get(i).getName());
}