Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将哈希表保存在持久存储中_Java_Hashtable_Persistent Storage - Fatal编程技术网

Java 将哈希表保存在持久存储中

Java 将哈希表保存在持久存储中,java,hashtable,persistent-storage,Java,Hashtable,Persistent Storage,我正在编写一个程序,从硬盘上读取大量数据,并根据这些数据创建一个hashmap,然后我进行一些处理,稍微改变这个初始hashmap。我的问题是,每次运行我的程序时,我都会从相同的数据创建相同的hashmap(让我们称之为初始hashmap)。只有一次运行与另一次运行的处理不同。无论如何,我可以创建一次hashmap并永久保存它吗?序列化会有帮助吗?这里也提出了类似的问题;我推荐谷歌搜索: java persistent hash table 话虽如此,您可以手动将键值对保存到文件或数据库中,并

我正在编写一个程序,从硬盘上读取大量数据,并根据这些数据创建一个hashmap,然后我进行一些处理,稍微改变这个初始hashmap。我的问题是,每次运行我的程序时,我都会从相同的数据创建相同的hashmap(让我们称之为初始hashmap)。只有一次运行与另一次运行的处理不同。无论如何,我可以创建一次hashmap并永久保存它吗?序列化会有帮助吗?

这里也提出了类似的问题;我推荐谷歌搜索:

java persistent hash table

话虽如此,您可以手动将键值对保存到文件或数据库中,并在启动时重建哈希。

由于哈希映射是可序列化的,因此我将使用以下方式保存它:

public void saveStatus(Serializable object){
   try {
      FileOutputStream saveFile = new FileOutputStream("current.dat");
      ObjectOutputStream out = new ObjectOutputStream(saveFile);
      out.writeObject(object);
      out.close();
      fileOut.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
}
要恢复对象,只需执行以下操作:

public Object loadStatus(){
   Object result = null;
   try {
      FileInputStream saveFile = new FileInputStream("current.dat");
      ObjectInputStream in = new ObjectInputStream(saveFile);
      result = in.readObject();
      in.close();
      fileIn.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
    return result;
}

然后您可以将此方法返回的对象强制转换为HashMap,并在同一位置继续。

这是一个众所周知的问题,有许多解决方案,其中我建议两种: 1.将hashmap保存在sql数据库表中,主键列包含键值,另一列包含相应的值; 2.使用nosql数据存储,其中有很多,包括Redis或SimpleDb