list字母排序 java_实现List按与一个字符串的相似度和字母顺序排序(适用于模糊查询后的排序)...

1 1 public static List sort(ListtoBeComparedStringList, String standardString){2 2 List listAfterSort = new ArrayList();//定义待比较字符串List的相似度的List

List listSemblance = new ArrayList();if(toBeComparedStringList.size()<=0){

System.out.println("出错,待比较的字符串为空");return null;

}//初始化相似度的List

for(int i=0;i

listSemblance.add(getSemblance(toBeComparedStringList.get(i),standardString));

}while(true){//循环的终止条件,当相似度的List里面全是Integer的最大值就跳出循环

if((Integer)Collections.min(listSemblance).intValue() ==Integer.MAX_VALUE.intValue()){break;

}else{//取到相似度最小的位置

Integer minIndex =getMinIndex(listSemblance);//并记录初始的相似度

Integer origSemblance =listSemblance.get(minIndex);//将这个位置的相似度置为Integer的最大值

listSemblance.set(minIndex, Integer.MAX_VALUE);if(origSemblance.intValue() !=listSemblance.get(getMinIndex(listSemblance)).intValue()){//如果相似度List中没有和初始相似度相同的//则取出待排序List对应位置的字符串

String minString =toBeComparedStringList.get(minIndex);

listAfterSort.add(minString);

}else{//如果相似度List中还有有和初始相似度相同的 则还原该位置相似度的初始值

listSemblance.set(minIndex, origSemblance);

List tempList = new ArrayList();//将相似度List中的所有该相似度的位置记下,将这些位置的相似度置为Integer的最大值,并取出待排序List中对应的String

for(int i=0;i

listSemblance.set(i, Integer.MAX_VALUE);

tempList.add(toBeComparedStringList.get(i));

}

}//将相似度相同的临时的List进行排序

Collections.sort(tempList, comparator);

listAfterSort.addAll(tempList);

}

}

}returnlistAfterSort;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值