package jayxigua.coding.pdd._20180508;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
/**
* 问题描述:一段英语段落,统计每个单词有多少个,并按照统计数目倒序。
* 技术点:map,entry,集合比较器
* 难度:★★
* 歌词提供:http://www.hjenglish.com/new/p1238922/
* 参考:Map value排序 http://www.cnblogs.com/avivahe/p/5657071.html
*
* @author jayxigua
*
*/
public class WordsCount {
public WordsCount() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String input = "Welcome to New York, welcome to New York Welcome to New York, it’s been waiting for you";
String[] words = input.split(" ");
System.out.println("words num is " + words.length);
Map<String, Integer> wordMap = new HashMap<String, Integer>();
for (String word : words) {
Integer count = wordMap.get(word);
if (count == null) {
wordMap.put(word, 1);
} else {
wordMap.put(word, count + 1);
}
}
List<Entry<String, Integer>> sortList = new ArrayList<Entry<String, Integer>>(wordMap.entrySet());
Collections.sort(sortList, new Comparator<Map.Entry<String, Integer>>() {
@Override
public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
// TODO Auto-generated method stub
return o2.getValue() - o1.getValue();
}
});
for (Entry<String, Integer> entry : sortList) {
System.out.println("word =" + entry.getKey() + ", count=" + entry.getValue());
}
}
}
网友评论