2017-02-11 6 views
0

나는 자바에 익숙하지 않고 여러 개의 트리 맵을 테이블에 결합하는 방법을 알아 내려고하고있다.복수형 트리 맵을 Java with csv 테이블에 결합

나는 텍스트 파일을 읽고 그 파일에 단어를 색인하는 트리 맵을 만드는 자바 프로그램을 가지고있다. 결과물에는 개별 단어가 키로 표시되고 페이지 목록이 값으로 표시됩니다. 예를 들면 다음과 같습니다 :

a 1:4:7 
b 1:7 
d 2 

내 프로그램은 현재 여러 텍스트 파일에 대한 스레드를 만들고 각 파일에 대해 트리 맵을 만듭니다. 이 트리 맵을 하나의 출력으로 결합하고 싶습니다.

a 1:2:4 
b 3 
c 7 

내가 만들려고 오전 최종 출력은 다음과 같이 보이는 CSV 테이블입니다 :

key,file1,file2 
a,1:4:7,1:2:4 
b,1:7,3 
c,,7 
d,2, 

결합하는 방법이 있나요 그래서 우리는 다음과 같습니다 두 번째 텍스트 파일이 있다고 가정 해 이런지도는? 나는 주로 SQL 개발자로서 각 맵을 파일 이름과 함께 txt 파일에 인쇄 한 다음 파일 이름을 기반으로이 목록을 피벗 화했습니다. 이것은 문제를 접근하는 방법과 매우 비슷한 자바처럼 보이지 않았습니다.

답변

1

수동으로해야한다고 생각합니다.

내 솔루션을 컴파일 didnt가하고 CSV 파일에 기록 didnt는하지만, 당신이 힌트를 제공해야합니다 :

public void writeCsv(List<MyTreeMap> list) { 
    Set<String> ids = new TreeSet<String>(); 

    // ids will store all unique key in your example: a,b,c,d 
    for(MyTreeMap m:list) { 
     for(String id:m.keySet()) { 
      ids.insert(id); 
     } 
    } 

    // iterate ids [a,b,c,d] 
    for(String id:ids) { 
     StringBuffer line = new StringBuffer(); 
     line.append(id); 
     for(MyTreeMap m:list) { 
      String pages = m.get(id); 
      // pages will contains "1:4:7" like your example. 
      line.append(","); 
      line.append(pages); 
     } 
     System.out.println(line); 
    } 
}