package test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class testa {
public static void main(String[] args) {
String str = "li shang ai zhen nan li shang shuai li";
String[] arr = str.split(" ");
for(int j = 0;j<arr.length; j++) {
System.out.print(arr[j] + "---");
}
System.out.println();
Map<String,count> map = new HashMap<>();
for(String temp: arr) {
count c = null;
if (null==(c = map.get(temp))) {
c = new count();
c.setCount(1);
map.put(temp, c);
}else {
c.setCount(c.getCount()+1);
}
}
Set<String> keys = map.keySet();
for(String key : keys) {
count cc = map.get(key);
System.out.println(key +"--" +cc.getCount());
}
}
}
class count {
Integer count = 1;
public Integer getCount() {
return count;
}
public void setCount(Integer count) {
this.count = count;
}
}
思路:先将字符串拆分,放到数组里边,然后使用map 存储,利用key 唯一的属性,在 value 存放一个对象 用来计数,如果存储时,根据 key 得到的 对象为空,就创建,然后附初始值1;然后揭下来每次遍历,只要可以通过get(key)方法取得对象,就说明,该单词又出现一次,然后给value对象的 count +1;
最后就是想要的结果