两个List<String>合并,HashSet去重复,并且排序
/**
* 获取号码表去重后参数/获取号码等级表去重后参数
*/
@Override
public List<String> queryParamListByColName(String colName) {
List<String> preNumAndRuleList = new ArrayList<String>();
//号码表查询结果
List<String> numList = codeProductDeviceNumAttrServ.queryDistinctListByColName(colName);
for (String num : numList) {
preNumAndRuleList.add(num);
}
//靓号规则表
List<String> ruleList = ruleNumChargeServ.queryDistinctListByColName(colName);
for (String rule : ruleList) {
preNumAndRuleList.add(rule);
}
HashSet<String> hashSet = new HashSet<String>();
hashSet.addAll(preNumAndRuleList);//去重复数据
List<String> numAndRuleList = new ArrayList<String>();
for (String strVal : numAndRuleList) {
numAndRuleList.add(strVal);
}
Collections.sort(numAndRuleList);
return numAndRuleList;
}
所以SQL查询的时候可以直接去重复
<query name="queryDistinctListByColName">
select distinct ${filter.colName} from crm_product.code_product_device_num_attr order by ${filter.colName}
</query>
最最好的方法是,涉及到的这两张表关联起来,直接取并集并去重复,返回不重复的List就可以了。