我有2個文件,我正在逐行解析將信息添加到兩個單獨的容器中的ArrayList<String>
。我正在嘗試創建一個反映下面的'產生的文件/數組列表'的最終容器「finalPNList
」。逐行解析2個文件並且需要避免重複(在特殊情況下)
問題是我沒有成功避免重複。我已經改變了代碼,但沒有成功。有時候我會限制條件太多,並避免所有重複,有時候我會把它放得太寬鬆幷包含所有重複項。我似乎無法找到使其恰到好處的條件。
這裏是到目前爲止的代碼 - 在這種情況下,看到的processLine()
內容ins't真正相關的,只知道你得到一個地圖2 ArrayLists<String>
public static Map<String, List<String>> masterList = new HashMap<String, List<String>>();
public static List<String> finalPNList = new ArrayList<String>();
public static List<String> modifier = new ArrayList<String>();
public static List<String> skipped = new ArrayList<String>();
for (Entry<String, String> e : tab1.entrySet()) {
String key = e.getKey();
String val = e.getValue();
// returns BufferedReader to start line processing
inputStream = getFileHandle(val);
// builds masterList containing all data
masterList.put(key, processLine(inputStream));
}
for (Entry<String, List<String>> e : masterList.entrySet()) {
String key = e.getKey();
List<String> val = e.getValue();
System.out.println(modifier.size());
for (String s : val) {
if (modifier.size() == 0)
finalPNList.add(s);
if (!modifier.isEmpty() && finalPNList.contains(s)
&& !modifier.contains(key)) {
// s has been added by parent process so SKIP!
skipped.add(s);
} else
finalPNList.add(s);
}
modifier.add(key);
}
下面是什麼數據可能看起來像(極度簡化處理約20K線在每個文件中大約10K行):
文件
123;data 123;data 456,data
文件B
123;data 789,data 789,data
生成的文件/ ArrayList的
123;data 123;data 789,data 789,data
您的預期產出是多少? –
我期望的輸出是在我的文章的結果文件部分中......最後一篇 –
請您詳細解釋一下您希望如何處理重複的規則?從上面的例子中還不清楚。 – Meesh