java List中重复的字符串排序

首先,先将字符串重复次数放入map中,然后再对map根据值进行排序。

例:
//将List中每个元素的重复次数放入map中
  public static Map testSplit(List list){   
int mapinI = 1;
String firString= null;
if(list.size()>=1){
firString =list.get(0).toString();
map.put(firString,mapinI);
list.remove(0);
}
int i= 0;
for( ;i<list.size();i++) {
String falgString = list.get(i).toString();
if(falgString.equals(firString)){
// 加了后去掉
mapinI=mapinI+1;
map.put(firString,mapinI);
list.remove(i);
i=-1;
}
}
if(list.size()>=1){

// 递归
testSplit(list);
}
return map ;
}

2,将Map进行排序
//对map进行排序(根据value)
public static ArrayList<Map.Entry<String,Integer>> sorMap(Map map){
ArrayList<Map.Entry<String,Integer>> entries = new ArrayList<Map.Entry<String,Integer>>(map.entrySet());
Collections. sort(entries , new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return (o2.getValue() - o1.getValue());
}
});
return entries;
}


3,进行调用
  public static void main(String[] args) {
List<String> list= new ArrayList<String>();
list=getList(); //获取List
Map cache=testSplit(list);
ArrayList<Map.Entry<String,Integer>> entries = sorMap(cache);
for(Map.Entry<String,Integer> e : entries) {
System. out.println(e.getKey() + ":" + e.getValue());
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值