【发布时间】:2021-02-02 14:22:00
【问题描述】:
这对我来说很难解释,因为我不是英语母语,所以我会尝试设置一个示例。
我正在尝试将有关玩家的一些数据保存在名为 PlayerData 的类中。它具有三个带有 getter 和 setter 的变量。
public class PlayerData {
private String player;
private String username;
private UUID uuid;
public String getPlayer() {
return player;
}
public void setPlayer(String player) {
this.player = player;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public UUID getUuid() {
return uuid;
}
public void setUuid(UUID uuid) {
this.uuid = uuid;
}
}
对于游戏中的每个玩家,都会生成一个 PlayerData 对象。通常我会将其存储在地图中,因此我可以从例如获取有关玩家的数据。 UUID。但是,我可以使用一种方法来将 PlayerData 对象中的任何变量用作“键”,因此我不需要 UUID 来获取 PlayerData。一种方法(和我常用的方法)是拥有多个地图,就像这样。
Map<String, PlayerData> playerMap;
Map<String, PlayerData> usernameMap;
Map<UUID, PlayerData> uuidMap;
问题是,当它使用多个变量进行扩展时,这会变得很烦人,甚至可能会占用 RAM?我不完全确定,因为它存储引用。
它类似于 SQL,您也可以根据行的内容获取特定的列。这就是我正在寻找的,但没有 SQL 数据库。
我在下面做了一个表格解释,试图进一步解释:
| Player | Username | UUID |
|---|---|---|
| Peter | Peter1234 | 657f6c48-655f-11eb-ae93-0242ac130002 |
| Stephen | DogLover69 | 657f6efa-655f-11eb-ae93-0242ac130002 |
| Joshua | XxFlowerPotxX | 657f6fea-655f-11eb-ae93-0242ac130002 |
短版 我正在寻找一种方法来存储相同类型的多个对象,其中我(与 Maps 不同,只将单个对象作为键)可以使用多个分配的变量作为键。
我希望解释清楚,我完全不知道如何解释,这可能也是我无法通过谷歌搜索解决的原因。
感谢您的宝贵时间。
【问题讨论】:
-
除非您有一百万个或更多 PlayerData 实例,否则只需将它们放在 java.util.List 中并线性搜索 List 以查找您要查找的属性。