1. 程式人生 > >兩個存物件的List,求並集

兩個存物件的List,求並集

比較物件的某幾個欄位,相等則表示物件相等,求並集:

將物件的那幾個欄位拼成一個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;
}

考慮不全面還請多指教。