本文介绍: 因为TreeMap中的entrySet()方法返回类型就是Map.Entry类型,其实Map.Entry就是个接口。* 将treemap中的键值对的set视图存入ArrayList中,其中的类型必须是Map.Entry,// 用Pattern类中matcher()方法,生成一个匹配对象,Matcher类是匹配器类。// 用Matcher类中的find()方法查找模式匹配的下一个序列。// 用Matcher类中的group()方法, 返回匹配的子序列。// 统计每个单词出现的次数

String text = ” aaaaabbbacccdaaaabbbbccccaaa“;

Pattern patten = Pattern.compile(“[a-zA-Z]+”);

// 用Pattern类中的matcher()方法,生成一个匹配器对象,Matcher类是匹配器类

String sbstring = text.toString();

Matcher matcher = patten.matcher(sbstring);

Map<String, Integer&gt; tp = new TreeMap<String, Integer&gt;();

while (matcher.find()) {

// 用Matcher类中的find()方法,查找模式匹配的下一个子序列

String word = matcher.group();

// 用Matcher类中的group()方法, 返回匹配的子序列

if (tp.containsKey(word)) {

// 统计每个单词出现的次数

Integer wordfrequency = tp.get(word);

tp.put(word, wordfrequency + 1);

} else {

tp.put(word, 1);

}

}

/*

* 将treemap中的键值对的set视图存入ArrayList中,其中的类型必须是Map.Entry,

* 因为TreeMap中的entrySet()方法的返回类型就是Map.Entry类型,其实Map.Entry就是个接口

* 将treemap存入ArrayList的目的就是用Collections类中的sort()方法进行排序

* 其中的sort(List<T>list,Comparator)是按照指定比较器进行排序

*/

List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(tp.entrySet());

/*

* 重写Comparator比较器,目的是让TreeMap按照value进行降序排列这里重写比较器用的是匿名类,

* 先创建实现Comparator接口的类,并重写其中的compare方法,并不是接口实例化了。

*/

Comparator<Map.Entry<String, Integer>> comparator = new Comparator<Map.Entry<String, Integer>>() {

// 如果是实现升序就是return(param1.getValue().compareTo(param2.getValue());

public int compare(Map.Entry<String, Integer> param1, Map.Entry<String, Integer> param2) {

return (param2.getValue().compareTo(param1.getValue()));

}

};

// 按照指定的比较器,对list列表进行升序或者降序排序

Collections.sort(list, comparator);

for (int i = 0; i < list.size(); i++) {

System.out.println(list.get(i).getKey()+list.get(i).getValue());

}

原文地址:https://blog.csdn.net/zhuixunhebe1/article/details/134744577

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_23608.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注