我有 2 个文件正在逐行解析,将信息添加到 2 个单独的ArrayList<String>
容器中。我正在尝试创建一个finalPNList
反映下面“结果文件/数组列表”的最终容器“”。
问题是我没有成功避免重复。我已经以各种方式更改了代码但没有成功。有时我限制条件太多,避免所有重复,有时我把它放得太松,包括所有重复。我似乎找不到使它恰到好处的条件。
这是到目前为止的代码——在这种情况下,看到 ins 的内容processLine()
并不真正相关,只知道你得到了一张带有 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 行):
文件 A
123;data 123;data 456,data
文件 B
123;data 789,data 789,data
结果文件/数组列表
123;data 123;data 789,data 789,data