Daniel Thoma: FileChooser und grosse Datenmengen

Beitrag lesen

Hallo Lina,

Ich würde das so implementieren:

HashSet extensions = new HashSet();

public boolean accept(File f){
  if(f.isDirectory()) {
    return true;
  }
  else {
    int i = f.getName().lastIndexOf('.');
    return i != -1 && extensions.contains(f.getName().substring(i + 1));
  }
}

indexOf durchsucht immer den ganzen String von vorne. Das ist bei langen Pfaden und vielen Dateien natürlich langsam.
Außerdem ist ein HashSet bei vielen Elementen wesentlich schneller als ein Array, wenn man darin ein bestimmtes Element finden will. So lange Du nur wenige zulässige Endungen hast, wirkt sich das aber vermutlich nicht aus.

Grüße

Daniel