1.TreeSet是一种不可重复,有序的数据集合,可是TreeSet中的有序是自然排序的,0-9|a-z
问题:现在需要先进先出并且去重,而不是按照自然排序
解决方法:加入ArrayList ,Set中的add返回值是一个boolean类型,可以此为判断依据添加值进list中
/**
* 去除集合中重复的数据和规则并有序排列
* @param seowords
* @return
*/
public static String noRepeat(String[] seowords ){
StringBuilder sb = new StringBuilder();
if(seowords.length <=0){
return null;
}else{
List<String> seoLists = new ArrayList<String>();
TreeSet<String> seoSets = new TreeSet<String>();
for(int q=0; q<seowords.length;q++){
String seo = seowords[q].toLowerCase().replaceAll("双4G版|LTE版|全网通版|手机|全面屏|高配版|大屏版|顶配版|RAM", "")
.replaceAll("(移动|联通|电信)\\d*(G|g)*版*", "")
.replaceAll("\\d+(G|g)版", "").replaceAll("\\d+GB", "").replaceAll("\\(*\\)*\\(*\\)\\/*", "").trim();
if(seo != null && !"".equals(seo)){
if(seoSets.add(seo+";")){
seoLists.add(seo+";");
}
}else{
continue;
}
if(seoSets.size() ==10){
break;
}
}
for(String s : seoLists){
sb.append(";".equals(s)?"":s.replace(";,", ";"));
}
return sb.length() < 1 ? "" :sb.toString().substring(0,sb.length()-1);
}
}