基本的に、Java で文字列のコレクションを返そうとしています。しかし...
- 現在のフォルダー内のすべての「.db」ファイルの名前であるため、各文字列は一意である必要があるため、このコレクションは LinkedHashSet である必要があると考えました。
- 要素 (ファイル名) はまったく同じ順序を維持する必要があるため、コレクション内の順序番号によってそのうちの 1 つを選択できます。
メイン ルーチンは、このコレクションを GUI コンポーネント (おそらく JList) に表示し、ユーザーがそれらのいずれかを選択できるようにします (.db 拡張子なし)。私は完全に初心者なので (ご覧のとおり)、LinkedHashSet よりも優れたオプションがあると思われる場合は教えてください。
また、メインクラスでこのコレクションを取得するにはどうすればよいですか?
私がこれまでに持っているもの:
public Set GetDBFilesList() {
//returns ORDERED collection of UNIQUE strings with db filenames
LinkedHashSet a = new LinkedHashSet();
FilenameFilter dbFilter = (File file, String name) -> {
return name.toLowerCase().endsWith(".db");
};
String dirPath = "";
File dir = new File(dirPath);
File[] files = dir.listFiles(dbFilter);
if (files.length > 0) {
for (File aFile : files) {
a.add(aFile.getName());
}
}
return a;
}