0

私はLinkedListいくつかのタイプを持ってい<Structure>ます。ディレクトリをループしているときに、読み取ったフォルダーがいくつかあります。LinkedListこれらを読み取りディレクトリの名前で動的に作成したいと思います。

つまり、ディレクトリの読み取りがKitchenまたはの場合Lobby。私が欲しい:

LinkedList<Structure> Kitchen = new LinkedList<Structure>();
LinkedList<Strucutre> Lobby = new LinkedList<Strucure>();

構造オブジェクトが持つ(String, ImageIcon, ImageIcon, ImageIcon)

ここでの問題は、ディレクトリを読み取ることによって受け取った名前に基づいて、LinkedList に名前を付けることです。

URL url = getClass().getResource("/path/to/directory/");
File file = new File(url.getPath() + "/");
File[] directories = file.listFiles();
for (int i = 0; i < directories.length; i++) {
     if (directories[i].isDirectory()) {
         // if directory then create LinkedList with that name
     }
}
4

4 に答える 4

4

新しいクラスが必要なように思えます。

class Room {
    private final String name;
    private final LinkedList<Structure> elements;

    ...
}

別のMap<String, LinkedList<Structure>>方法として、別のファイルをロードするときにマップを作成することもできます。

次に、各部屋をロードするときに、オブジェクトの名前を指定できます。変数 (名前を持つ) とオブジェクト (名前を表すフィールドを追加しない限り、名前を持たない) を区別することは非常に重要です変数名は通常、コード内でのみ関連するため、「動的に生成された変数名」という考えは無意味です。

于 2012-11-24T13:49:36.227 に答える
2

Map<String, LinkedList<Structure>>Map への String キーがディレクトリ名であるa を使用することで、これを解決できます。次に、関連する LinkedList にディレクトリ String を介して簡単にアクセスできます。

于 2012-11-24T13:49:50.180 に答える
2

これはできません。変数の名前は、プログラミングで使用する単なる記号です。実行時には、これらすべてがメモリ内のスペースへの参照に縮小されます。また、あなたや他の誰かがこれらの変数の名前を実際に見ることはできないので、とにかくここでは意味がありません.

于 2012-11-24T13:50:17.843 に答える
0

Java 変数名自体は変数ではありませんが、 MultiMap<String, LinkedList<Structure>>を使用できます。これは、重複した名前エントリを処理するのに役立ちます。

于 2012-11-24T13:54:47.997 に答える