[Java] para ler a freqüência de saída de texto por palavras

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.

Acho que você gosta

Origin www.cnblogs.com/zhangmora/p/12652733.html
Recomendado
Clasificación