標籤:
先上傳代碼,
1 List<String> criteriaList = new ArrayList<String>(); 2 EfsnCompanyCriteria companyCriteria = new EfsnCompanyCriteria(user.getCompanyId(), 3 EfsnCompanyCriteria.CRITERIA1, 4 con); 5 EfsnCompanyCriteria mpCompanyCriteria = new EfsnCompanyCriteria(user.getCompanyId(), 6 EfsnCompanyCriteria.CRITERIA2, 7 con); 8 EfsnCompanyCriteria secCompanyCriteria = new EfsnCompanyCriteria(user.getCompanyId(), 9 EfsnCompanyCriteria.CRITERIA3,10 con);11 criteriaList.addAll(companyCriteria.getListOfPlanLevels());12 criteriaList.addAll(mpCompanyCriteria.getListOfPlanLevels());13 criteriaList.addAll(secCompanyCriteria.getListOfPlanLevels());
如上面所述,標為藍色的3個criteria裡面可能有重複的值,所以在全部添加到criteriaList裡面的時候我們在interface上show的時候需要考慮到它的重複值問題。
開始自己想到的是,用if(...){criteriaList.add(...)}的方法,可實現起來比較麻煩,而且容易出錯。
後來自己想到了set(最簡單的一種集合,集合中的對象不按特定的方式排序,並且沒有重複對象。)
所以,用以下的代碼塊解決了此問題,
1 HashSet<String> criterSet = new HashSet<String>(criteriaList);
//new了一個set集合對象,然後將上面得到的criteriaList放入到裡面,此時雖說criteriaList中有重複的元素,但是這時候得到
的criterSet中是不存在重複值的,不知道這是不是set的特性(在內部的處理機制),明天問下公司大神。2 criteriaList.clear();3 criteriaList.addAll(criterSet);
//clear()和addAll()。
挺簡單清晰的代碼。
Remove the duplicate values in Java code