先上传代码,
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()。
挺简单清晰的代码。
时间: 2024-08-29 07:59:02