2012-11-14 5 views
1

하드 디스크에서 방대한 양의 데이터를 읽고이 데이터에서 해시 맵을 만드는 프로그램을 작성한 후이 초기 해시 맵을 약간 변경하는 일부 처리를 수행합니다. 내 문제는, 내가 프로그램을 실행할 때마다, 나는 동일한 데이터로부터 동일한 해시 맵을 생성한다 (초기 해시 맵이라고 부를 수있다). 처리 만 실행과 달리 실행됩니다. 어쨌든,이 해시 맵을 한 번 생성하여 지속적으로 저장할 수 있습니까? 직렬화가 도움이 될까요?영구 저장소에 해시 테이블 저장

답변

2

그것의 잘 알려진 문제가 많은 솔루션은 내가 두 가지를 제안 그들 가운데,이 있습니다 : 키 값과 해당 값을 포함하는 다른 열이 포함 된 기본 키 열이있는 SQL 데이터베이스 테이블에서 해시 맵 저장 (1);2. nisql 데이터 저장소를 사용하십시오. Redis 또는 SimpleDb 중 많은 것이 있습니다.

-2

비슷한 질문이 여기에 있습니다. 나는 인터넷 검색을하는 것이 좋습니다 :

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의 이후

2

내가 그것을 저장하려면이 방법을 사용합니다 직렬화 이 메소드에 의해 HashMap에 돌려 주어져 같은 장소에서 계속됩니다.