簡體   English   中英

合並兩個數據集java

[英]Merge two datasets java

我到處都在尋找可能的解決方案,但是我什么也找不到,被卡住了。

問題:

我有兩個包含數據的文件,當我將它們讀入Java時,我將它們存儲在兩個單獨的數組中。 這些數組如下所示:(它們由前面指定的定界符分隔)

 [ID   pval   logFC ...  ...  ...,
 S145 0.02   2     ...  ...  ...,
 S252 0.01   4     ...  ...  ...,
 ...  ...   ...    ...  ...  ...]  

 [ID   pval   logFC ...  ...  ...,
 S145 0.02   2     ...  ...  ...,
 S252 0.01   4     ...  ...  ...,
 ...  ...   ...    ...  ...  ...]

    ... <--- can be anything

因此,它們不必具有相同的標題列。 我想做的是將這兩個數組合並到一個文件中,共享頭相互堆疊,不添加共享頭,但為另一個填充空值。

Shared header    not shared header
a                a
a                a
a                a
a                a
b                null
b                null
b                null

最后,所有內容都應寫入一個稱為“組合”的文件中。

有誰知道可以使用什么類來做到這一點? 是否已經存在可以處理這種合並的類?

您可以使用Collection <Map <String,String >>來存儲數據而不是數組。 在這種情況下,您的任務將輕松完成:

Collection<Map<String, String>> data1 = loadData("source1.dat");
Collection<Map<String, String>> data2 = loadData("source2.dat");
Collection<Map<String, String>> merged = new ArrayList<>();

merged.addAll(data1);
merged.addAll(data2);

Set<String> headers = new LinkedHashSet<>();

for (Map<String, String> map : merged) {
    headers.addAll(map.keySet());
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM