Agora vem a frequência das palavras, é certamente o número de pares chave-valor a ser usado para armazenar as palavras e correspondente.
Aqui inserir sobre o HashMap e TreeMap:
HashMap : Com base na tabela hash. Use HashMap solicitação de chave para adicionar o hashCode definido classe () e equals () [pode substituir hashCode () e equals ()], HashMap para otimizar o uso do espaço, você pode sintonizar a capacidade inicial e o fator de carga. Adequado para inserção em um mapa, exclusão e elementos de localização.
(1) HashMap (): construir um mapa de hash vazio
(2) HashMap (Mapa m) : Construção de um mapa de hash, e a adição de todas as imagens mapeadas m
(3) HashMap (int initialCapacity) : Construção de uma certa capacidade têm mapa de hash vazio
(4) HashMap (int initialCapacity, flutuador loadFactor): Construção de vazio tem uma capacidade específica e o factor de carga do mapa de hash
TreeMap : Baseado árvore rubro-negro. Treemap há opções de ajuste, porque a árvore está sempre em equilíbrio. ordem natural adequado ou ordem feita sob encomenda chave transversal (key).
(1) TreeMap (): construir uma imagem vazia da árvore
(2) TreeMap (Mapa m) : Construção de um mapa de árvore, e adicionar a imagem m de todos os elementos
(3) TreeMap (Comparador C) : Construção de um mapa de árvore, utilizando específica tipo palavras-chave de comparação
(4) treemap (SortedMap s) : Construção de um treemap, adicionar toda a imagem mapeamentos treemap s, s e ordenou usando a mesma comparação espécie
HashMap normalmente (árvore de dados e ditames da tabela de hash), é recomendado o uso de HashMap, no mapa quando você precisa para classificá-lo mais rápido do que com o ponto TreeMap TreeMap.
Para fazer uma palavra automaticamente em ordem alfabética (agradável olhou para o olho), eu usei TreeMap, mas TM personalizado Comparador só pode ser definida na chave, não pode definir valor de agrupamento, porque é construído na árvore chave, então usado é: primeiro turno em uma lista de coleção, o que colocou a chave certa TM entrada, direito de classificar esta coleção de escrever um método de comparação.
1 importação java.io.BufferedReader; 2 importação java.io.File; 3 importação java.io.FileReader; 4 importação Java.io.IOException; 5 importação java.util.ArrayList; 6 importação java.util.Collections; 7 importação java.util.Comparator; 8 importação java.util.List; 9 importação java.util.Map; 10 importação java.util.TreeMap; 11 12 pública classe texMain { 13 pública estática vaziomain (String [] args) throws IOException { 14 arquivo File = new File ( "E: /test.txt" ); 15 BufferedReader bReader = new BufferedReader ( new FileReader (arquivo)); 16 17 TreeMap <String, Integer> map = new TreeMap <String, Integer> (); 18 linha String = nulo ; 19 , enquanto ((linha = bReader.readLine ()) =! Nulo ) { 20 String [] = COSs line.trim () cisão ( "[^ A-Za-Z]". ); 21 para (String s: STR) { 22 se (. S.trim () comprimento () == 0) continue ; 23 se (! Map.containsKey (s)) 24 map.put (s, 1 ); 25 else { 26 map.put (s, map.get (s) +1 ); 27 } 28 } 29 } 30 bReader.close (); 31 List <Map.Entry <String, Integer >> list = new ArrayList <> (map.entrySet ()); 32 Collections.sort (lista, nova Comparator <Map.Entry <String, Integer >> () { 33 @Override 34 pública int compare (java.util.Map.Entry <String, Integer> o1, java.util.Map.Entry <String, Integer> o2) { 35 36 retorno o2.getValue (). CompareTo (o1. Obter valor()); 37 } 38 }); 39 para (Map.Entry <String, Integer> m: lista) { 40 System.out.println (m.getKey (+)" "+ m.getValue ()); 41 } 42 System.out.printlnl (list.get (0) .getKey () +" "+ list.get (0 ) .getValue ()); 43 } 44 }
PS: fator de carga HashMap: quando o fator de carga é grande, a possibilidade de expansão para ir para a mesa da matriz será menor, o take parente até menos memória (menos espaço), mas os elementos em cada vertente seria relativamente entrada e mais tempo para a consulta vai crescer (mais tempo). Por outro lado é, quando o fator de carga é menor possibilidade de apresentar uma variedade de expansão será alta, então quanto mais espaço de memória ocupado, mas os elementos da cadeia sobre a entrada será relativamente pequeno, o tempo isolado será reduzida. Assim, apenas o fator de carga é um compromisso sobre o tempo e espaço para dizer. Portanto, definir o fator de carga a considerar quando à procura de um pouco mais de tempo ou espaço.