package com.hao.test;
import java.util.HashMap;
/**
*
* @author zhanghaohao089
* @date 2017/8/16
*/
public class QueryEnglishWord {
private HashMap<String, Integer> hashMap = new HashMap<>();
private HashMap<Integer, Word> hashWord = new HashMap<>();
private int count = 0;
public void insert(String content) {
String[] array = content.split(" ");
String name;
for (int i = 0; i<array.length; i++) {
name = array[i].trim();
if (name.length() > 0 ) {
if (name.indexOf("...") > -1) {
name = name.replace("...", "");
}
if (name.indexOf(".") > -1) {
name = name.replace(".", "");
}
for (int j = 0; j < 10; j++) {
if (name.indexOf(""+j) > -1) {
name = "";
break;
}
}
}
if (name.length() > 0) {
if (hashMap.get(name) != null) {
int index = hashMap.get(name);
Word word = hashWord.get(index);
word.setCount(word.getCount() + 1);
hashWord.put(index, word);
} else {
hashMap.put(name, ++count);
Word word = new Word();
word.setName(name);
word.setCount(1);
hashWord.put(count, word);
}
}
}
}
public void println() {
for (int i = 1; i<= count; i++) {
System.out.println("单词为---" + hashWord.get(i).getName() + " 出现的次数---" + hashWord.get(i).getCount());
}
}
}
package com.hao.test;
/**
* description
*
* @author zhanghaohao089
* @date 2017/8/16
*/
public class Word {
private String name;
private int count;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
}
node:
1、先判断…符号再判断.符号
至于为什么要用hashMap来储存,因为hashMap在已知条件的情况下,存取极快,修改快,没有删除操作
数据结构 优点 缺点
数组 插入快 查找慢、删除慢、大小固定
有序数组 查找快 插入慢、删除慢、大小固定
栈 后进先出 存取其他项很慢
队列 先进先出 存取其他项很慢
链表 插入、删除快 查找慢
二叉树 查找、插入、删除快 算法复杂(删除算法)
红黑树 查找、插入、删除快 算法复杂
hash表 存取极快(已知关键字)、插入快 删除慢、不知关键字时存取很慢、对存储空间使用不充分
堆 插入快、删除快、对大数据项存取快 对其他数据项存取慢
图 依据现实世界建模 算法有些复杂
AVL树 查找、插入、删除快 算法复杂