首先我们要换个思维先排序后去重,这样会简单点,如果是先去重复的排序就比较麻烦!
List<UserHotSearch> hotSearchList=new ArrayList<UserHotSearch>();
List<UserHotSearch> hotUpdateSearchList=new ArrayList<UserHotSearch>();List<UserHotSearch> searchArrayList=new ArrayList<UserHotSearch>();
//在2个人工干预和客户点击的前5名中选出前5个热词
hotSearchList=userHotSearchDaoInterface.getUserHotSearch();
hotUpdateSearchList=userHotSearchDaoInterface.getUpdateHotSearch();
int num=0;
int isMax=0;
//对数组进行排序 (后去掉重复的)
for(int i=0;i<hotSearchList.size();i++){
for(int j=0;j<hotUpdateSearchList.size();j++){
//第一大的和第一大的比较
if(j==0){
j=j+num;
}
if(j>hotUpdateSearchList.size()){
break;
}
//用户搜索的词语多先加到数组
if(hotSearchList.get(i).getSearchCount()-hotUpdateSearchList.get(j).getUpdateCount()>0){
searchArrayList.add(hotSearchList.get(i));
num=j;
isMax=1;
break;
} else {
//这是当循环到最后一个值已经添加到数组不需要再添加
num=j;
isMax=0;
searchArrayList.add(hotUpdateSearchList.get(j));
}
}
//如果循环玩了 还没最大的就把他放在后面
if(isMax==0){
searchArrayList.add(hotSearchList.get(i));
}
}
for(int a=0;a<searchArrayList.size();a++){
for(int j=a+1;j<searchArrayList.size();j++){
if(searchArrayList.get(a).getContent().equalsIgnoreCase(searchArrayList.get(j).getContent())){
//因为数组已经排序好了重复就删除下面的
searchArrayList.remove(j);
}
}
}