Java:我应该如何在内存中存储每个用户的东西

Java:我应该如何在内存中存储每个用户的东西,java,memory,data-structures,storage,Java,Memory,Data Structures,Storage,我需要将特定于用户名的值存储到内存中,我在考虑动态命名变量之类的事情,这样我就可以 ["bubby4j_falling"] = true; 并将其索引为 ["bubby4j_falling"] 但是,这只是一个例子,我知道这行不通,我只想找到一种快速简单地动态获取和存储东西的方法。您想使用带有字符串键的映射,例如HashMap 您的示例如下所示: Map<String, Boolean> map = new HashMap<String, Boolean>(); ma

我需要将特定于用户名的值存储到内存中,我在考虑动态命名变量之类的事情,这样我就可以

["bubby4j_falling"] = true;
并将其索引为

["bubby4j_falling"]

但是,这只是一个例子,我知道这行不通,我只想找到一种快速简单地动态获取和存储东西的方法。

您想使用带有字符串键的映射,例如
HashMap

您的示例如下所示:

Map<String, Boolean> map = new HashMap<String, Boolean>();
map.put("bubby4j_falling", true);

if(map.get("bubby4j_falling")) {
    ...
}
Map Map=newhashmap();
map.put(“bubby4j_falling”,true);
if(map.get(“bubby4j_falling”)){
...
}

实际上,在您的情况下,
集合
更有用:

Set<String> fallingUsers = new HashSet<String>();
fallingUsers.add("bubby4j");

if(fallingUsers.contains("bubby4j")) { ... }
Set fallingUsers=new HashSet();
添加(“泡泡4J”);
if(fallingUsers.contains(“bubby4j”){…}

但是,如果您已经有了
User
对象(您应该这样做),那么最好使用
Set
,或者甚至让这个
falling
只是用户对象的一个属性。然后,您可以使用
地图
按名称获取用户对象。

@Paŭlo Ebermann的答案非常准确

我只想指出,Java语言没有任何类似于动态变量的东西。所有Java变量名及其类型都在Java源代码中声明。即使反射也不允许您在现有类中动态创建新变量

Java被设计成一种静态编程语言,如果您以这种方式使用它,它的工作效果最好

(从理论上讲,如果你对源代码或字节码生成技术一窍不通,你可以用新变量动态创建一个新类。然而,这涉及到大量的工作,而不是一个明智的程序员想做的事情来解决一个简单的问题。此外,我怀疑这种方法是否真的对你的pa有帮助关节病例。)