本帖最后由 Без_тебя 于 2014-6-12 20:17 编辑
为了简单的熟悉map的运用,我在这边做了一个简单的实例:单词分拣,可以把英文句子里面的单词都分拣出来,并且算出每个单词句中出现几次,请问在这边大家还有什么更好的建议吗?
public class Demo {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("请输入英文句子:");
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
//将英文句子用空格分开
String[] letters = str.split(" ");
//遍历每一个单词,如果没有在map中的话,新建一个Letter类给他,并作为value存入到map中,如果有的话,Letter的count值加1
Map<String,Letter> map = new HashMap<String,Letter>();
//遍历letters中的单词
for(String temp : letters){
Letter letter = null;
//如果map中包含有temp单词则给他的值Letter的count加上1
if(map.containsKey(temp)){
letter = map.get(temp);
letter.setCount(letter.getCount()+1);
}else{
//如果map中没有包含temp单词,则初始化,给他一个Letter值,并且count为1
letter = new Letter(temp,1);
}
//将temp作为键,letter作为值放入到map中,如果map中已经有了temp,会自动覆盖temp的值
map.put(temp, letter);
}
Set<String> set = map.keySet();
System.out.println("====单词个数=====");
for(String temp : set){
Letter letter = map.get(temp);
System.out.println(letter.getName()+":"+letter.getCount());
}
}
} |