import java.util.Map; import java.util.Map.Entry; public class TireTree { Tree tree = new Tree(); String [] str ; /** * * @param word * @param map * * 字典树 */ //添加 public void addWord(String word, Map<Character, Tree> map) { if (word.length() != 0) { char c = word.charAt(0); if (map.get(c) != null) { Tree rootTree = map.get(c); addWord(word.substring(1), rootTree.myTree); } else { Tree t = new Tree(); t.name = c; map.put(c, t); addWord(word.substring(1), map.get(c).myTree); } } } //查找 public String search(String searchWord, Map<Character, Tree> map, String words) { if (searchWord.length() > 0) { char c = searchWord.charAt(0); if (map.get(c) != null) { words += map.get(c).name; return search(searchWord.substring(1), map.get(c).myTree, words); } else return "未找到" ; } else { return words; } } public String search(String searchWord) { return search(searchWord, tree.myTree, ""); } public static void main(String[] args) { TireTree tireTree = new TireTree(); tireTree.addWord("中华人民成立了", tireTree.tree.myTree); tireTree.addWord("人民成立了", tireTree.tree.myTree); tireTree.addWord("人民成立", tireTree.tree.myTree); tireTree.addWord("成立", tireTree.tree.myTree); tireTree.addWord("成立了", tireTree.tree.myTree); tireTree.addWord("iphone5s", tireTree.tree.myTree); tireTree.addWord("iphone6s", tireTree.tree.myTree); System.out.println(tireTree.tree.myTree.size()); System.out.println(tireTree.search("中华人民")); System.out.println(tireTree.search("人民")); System.out.println(tireTree.search("成立")); System.out.println(tireTree.search("iphone5se")); } }
云计算交流群 ---292870151 ,195907286 分布式搜索 ---- 445201983