我有两个文件,我已经阅读了2个HashMaps。这些文件表示的对象有5个要填充的字段。每张地图提供三张。我需要通过重叠的第三个对象加入这些。
这是我到目前为止的代码。它似乎有效,但我试图了解是否有更简洁的方法来做到这一点。
(如果相关:这些文件的大小不同。另外,它作为csv进入,所以为了填写地图,我只是简单地分开","并建立对象。
让我们说MyObj拥有5个字符串,生病称为s1-s5。 在文件中,s3是我们加入的。在决赛中,我想通过s1查找。
String company = "CompanyA";
HashMap<String, MyObj> first = readFromFirstFile(); //fills s1-s3
HashMap<String, MyObj> second = readFromSecondFile(); //fills s3-s5
HashMap<String, MyObj> joined = new HashMap<>();
first.forEach((key,val) -> {
MyObj obj = second.get(key);
if (obj != null && val.s5.equalsIgnoreCase(company)) {
MyObj obj = new MyObj(s1,s2,s3,s4,s5);
joined.put(obj.s1,obj);
}
});
示例:
Example data file1:
1000 -> CompanyA, 0000001
1001 -> CompanyA, 0000002
1002 -> CompanyA, 0000003
Example data file 2:
0000001 -> "Snickers Delivery 11/29/2017", "Hershey"
0000002 -> "Potato Chips Delivery 11/20/2017", "Lays"
0000003 -> "Returned Shipment Video Games 11/20/2017", "EA"
Goal Data:
1000 -> CompanyA, 0000001, "Snickers Delivery 11/29/2017", "Hershey"
1001 -> CompanyA, 0000002, "Potato Chips Delivery 11/20/2017", "Lays"
1002 -> CompanyA, 0000003, "Returned Shipment Video Games 11/20/2017", "EA"