兩個存物件的List,求並集
阿新 • • 發佈:2018-11-28
比較物件的某幾個欄位,相等則表示物件相等,求並集:
將物件的那幾個欄位拼成一個String存於map中作為key, 物件作為value,程式碼如下:
/******物件定義********/ Class Obj{ int attr1; String attr2; String attr3; String attr4; @getter//有get與set方法 @setter } public List<Obj> getUnion(List<Obj> obj1List, List<Obj> obj2List){ List<Obj> unionList= new ArryList<>(); Map<String, Obj> = new HashMap<>(); //遍歷obj1List 存取map中 for(Obj obj : obj1List){ String key = obj.getAttr2() + obj.getAttr3(); map.put(key, obj); } //遍歷obj2List 存取map中,若有相同的key則會覆蓋之前的值,將新物件存入 for(Obj obj : obj2List){ String key = obj.getAttr2() + obj.getAttr3(); map.put(key, obj); } for (Map.Entry<String, Obj> entry : map.entrySet()) { unionList.add(entry.getValue()); } return unionList; }
考慮不全面還請多指教。