TreeSet 實際運用中的補坑
阿新 • • 發佈:2018-12-12
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);
}
}