【发布时间】:2013-03-05 20:06:55
【问题描述】:
我有一个 Socket 服务器等待客户端以 json 格式发送消息。 我不需要将数据存储到数据库中,但现在,我想将它们保存在哈希表中。因此,当客户端发送消息时,服务器会将其添加到哈希表中,而不会丢失之前的消息。
这是我的哈希表的声明:
private static Hashtable<Integer,String> table = new Hashtable<Integer,String>();
这里是被称为消息到达服务器的方法:
private void HashTable(String string){
//JsonArray questions = new JsonArray();
//questions = string;
//for(int i = 0; i < questions.length(); i++) {
//JsonObject question = questions.getJsonObject(i);
JSONObject jsonObj;
try {
jsonObj = new JSONObject(string);
int id = jsonObj.optInt("DeviceID", -1);
String name = jsonObj.toString();
table.put(id, name);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//}
}
上面的代码没有保留以前消息中的数据。谁能给个提示?
谢谢
【问题讨论】:
-
它应该把它保存到哈希表中......或者你的意思是保持,如果你关闭并重新打开程序,数据仍然存在?
-
为什么会有一个叫HashTable o_O的方法
-
Hashtable在 Java 中已过时。你还在用它。有什么原因吗? -
@Lele 感谢您的关注。我没有关闭或终止程序。我正在尝试查看是否使用多个设备存储数据以发送消息。服务器正在调试模式下运行,发送新消息后我无法看到以前的消息。
-
嗨@Lion ......无论如何,结构都会改变。我使用哈希表只是为了让它用于演示。