30/09/2018, 19:26
Đếm số lần xuất hiện các từ trong chuỗi bằng map trong java
import java.util.*;
public class Main {
public static void main(String[] args){ String str = "hello words hello"; str = str.replaceAll(",",""); String[] arr = str.split(" "); String key=""; Integer value; HashMap<String, Integer> map = new HashMap<String, Integer>(); for(int i=0;i<arr.length;i++){ key = arr[i]; if(map.containsKey(key)){ value = map.get(key); map.remove(key); map.put(key, value+1); } else{ map.put(key, 1); } } Set set=map.keySet(); Iterator i = set.iterator(); while(i.hasNext()){ key=(String)i.next(); System.out.println("Từ '"+key+"' xuất hiện "+map.get(key)+" lần"); } }
}
Đây là code của em ạ, nhưng em không hiểu sao em muốn output là:
Từ ‘hello’ xuất hiện 2 lần
Từ ‘words’ xuất hiện 1 lần
Nhưng nó lại cứ ra là :
Từ ‘words’ xuất hiện 1 lần
Từ ‘hello’ xuất hiện 2 lần
Ai giúp em giải thích tại sao lại như vậy được không ạ, em cảm ơn
Bài liên quan
Lần lặp thứ 3 đã remove cái hello đầu tiên, rôi add cái mới vào nên ra thế.
xài TreeMap thay cho HashMap