0

我有LinkedList某种类型的<Structure>. 在遍历目录时,我有一些文件夹可以阅读。我动态地想LinkedList用读取目录的名称创建这些。

即如果目录读取是KitchenLobby。我想:

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 键是目录名称来解决此问题。然后您可以通过目录 String 轻松访问相关的 LinkedList。

于 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 回答