在前面的部落格中講過用map做小實體,接收資料。現在業務要求是:對實體集合去重;
使用hashset將map集合去重。
1、取出listoldlist中的userid,用hashsetremovalmanageridlist集合接收,自動去重;(可借鑑:
利用hashset對陣列去重)
2、新建listnewlist,遍歷listoldlist 和 hashsetremovalmanageridlist,從listoldlist取出與hashsetremovalmanageridlist中對應的值,將新值儲存到listnewlist;
1、外迴圈:hashsetremovalmanageridlist,內迴圈:listoldlist;
2、問題:內迴圈中有重複值,乙個外迴圈的userid每遍歷一次內迴圈時,如果userid相同就會新建乙個實體,這樣仍然達不到去重的效果;解決方法:外迴圈找到userid相同的內迴圈實體時,給新實體賦值後,停止遍歷內迴圈;
public void parsemap(listmanagerlists, assetdeptmanagerconfigvo
assetdeptmanagerconfigvo,
list> maplist, string managerbiztype)
// 遍歷hashset,對每個managerid賦值(此時的removalmanageridlist中沒有重複的userid)
for (string removalmanagerid : removalmanageridlist) }}
}
四、其他方法:
為entity重寫equal方法:
set實體泛型物件去重(重寫實體hashcode、equal方法)
HashSet集合,map集合
hashset集合 遍歷通過迭代器iterator遍歷 它儲存的是無序集合 不允許重複資料新增 string strs new string 10 hs.toarray strs 轉換hashset集合到strs陣列中 hashset物件去重的原理 雜湊表依賴兩個方法hashcode 和equals...
java集合框架 HashSet
目錄 1.無序 唯一 2.真的唯一麼?3.先入為主 4.set的其他實現類 hashset實現了set介面,內部主要是通過hashmap實現的.1.無序 唯一public class hashsetdemo1 collections.addall set,str system.out.println...
利用Map集合將list集合中資料進行拆分。
如下 中orderlist為原生的資料集合體。根據standardid欄位值來進行區分資料。hashmap集合以 standardid為key,templist 為value param orderlist return map title productionequipmentisrepeat d...