利用map集合查询指定单词在书中出现的频率

public class WordsFrequency {
    
    
	// 新建一个字符串数组
	static String[] wordsF = {
    
     "i", "have", "an", "apple", "he", "have", "a", "pen" };
	// 构造函数初始化字符串
	static WordsFrequency w = new WordsFrequency(wordsF);
	// 新建一个map集合,map集合
	Map<String, Integer> map = new HashMap<>();

	public static void main(String[] args) {
    
    
		System.out.println(w.get("have"));
	}

	public WordsFrequency(String[] book) {
    
    
		// 循环遍历字符串数组
		for (String string : book) {
    
    
			// 利用map集合的键值不能重复性
			// 查看map集合是否包含传入单词
			if (!map.containsKey(string)) {
    
    
				// 判断map的键值是否包含,不包含value设置成1;
				map.put(string, 1);
			} else {
    
    
				// 包含value值加一,
				map.put(string, map.get(string) + 1);
			}
		}
	}

	public int get(String word) {
    
    
		/**
		 * 这里主要是利用map.getOrDefault(word, 0);方法代替了对map进行的遍历否则时间会限制,超出时间限制
		 * 
		 */
		// getOrDefault()方法意思就是当Map集合中有这个key时,就使用这个key对应的value值,如果没有就使用默认值defaultValue
		return map.getOrDefault(word, 0);
	}
}

猜你喜欢

转载自blog.csdn.net/qq_34134299/article/details/111600563
今日推荐