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有帮助关节病例。)