[Java] para leer la frecuencia de salida de texto en la palabra

Ahora viene la frecuencia de palabras, sin duda es el número de pares de valores clave a utilizar para almacenar las palabras y que corresponde.

A continuación inserte sobre el HashMap y TreeMap:

HashMap : Basado en la tabla hash. Uso HashMap solicitud de clave para añadir el código hash se define la clase () y equals () [puede anular hashCode () y equals ()], HashMap para optimizar el uso del espacio, puede sintonizar la capacidad inicial y el factor de carga. Adecuado para inserción en un mapa, borrar y elementos de colocación.

(1) HashMap (): construir un mapa hash vacío
(2) HashMap (Mapa m) : Construcción de un mapa hash, y la adición de todas las imágenes mapeadas m
(3) HashMap (int initialCapacity) : Construcción de una cierta capacidad tiene vacía mapa hash
(4) HashMap (int initialCapacity, flotador loadFactor): Construcción de vacío tiene una capacidad específica y el factor de carga del mapa hash

TreeMap : Basado árbol rojo-negro. TreeMap no hay opciones de ajuste, porque el árbol es siempre en equilibrio. orden natural adecuada o la tecla de recorrido orden de encargo (llave).

(1) TreeMap (): construir una imagen vacía del árbol
(2) TreeMap (Mapa m) : Construcción de un mapa de árbol, y añadir la imagen m en todos los elementos
(3) TreeMap (Comparador c) : Construcción de un mapa de árbol, usando Ordenar palabras clave específicas comparador
(4) TreeMap (SortedMap s) : Construcción de un mapa de árbol, añadir todos los mapeos treemap s, s imagen y ordenó el uso de la misma especie comparador

 

 

 

Hashmap general (árbol de datos y los dictados de la tabla hash), se recomienda utilizar HashMap, en el mapa cuando se necesita para solucionar el problema más rápido que con el punto TreeMap TreeMap.

Para convertir una palabra automáticamente en orden alfabético (agradables mirado a los ojos), que se utiliza TreeMap, pero la costumbre TM Comparador sólo se puede establecer en la llave, no se puede establecer el valor de colación, porque está construido en el árbol de clave, por lo usa es: en primer lugar a su vez en una lista de colecciones, que puso la llave correcta entrada de TM, derecho a ordenar esta colección de escribir un método Comparador.

1  importación java.io.BufferedReader;
2  importación java.io.File;
3  importación java.io.FileReader;
4  importación java.io.IOException;
5  importación java.util.ArrayList;
6  importación java.util.Collections;
7  importación java.util.Comparator;
8  importación java.util.List;
9  importación java.util.Map;
10  importación java.util.TreeMap;
11  
12  pública  clase texMain {
 13      pública  estática  vacíomain (String [] args) lanza IOException {
 14          del archivo = nuevo archivo ( "E: /test.txt" );
15          BufferedReader Breader = nueva BufferedReader ( nuevo FileReader (archivo));
16       
17          TreeMap <String, Integer> mapa = nuevo TreeMap <String, Integer> ();
18          línea String = nulo ;
19          , mientras que ((línea = bReader.readLine ()) =! Nulo ) {
 20              String [] ROS = line.trim split () ( "[^ A-Za-z]". );
21              para (String s: RTS) {
22                  si (. S.trim () longitud () == 0) siguen ;
23                  si (! 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          Lista <Map.Entry <String, Integer = >> lista nueva ArrayList <> (map.entrySet ());
32          Collections.sort (lista, nueva Comparador <Map.Entry <String, Integer >> () {
33              @ Override
 34              pública  int comparar (java.util.Map.Entry <String, Integer> o1, java.util.Map.Entry <String, Integer> o2) {
 35                  
36                  retorno o2.getValue (). CompareTo (o1. getValue ());
37              }
 38          });
39          para (Map.Entry <String, Integer> m: lista) {
 40              System.out.println (m.getKey () +" "+ m.getValue ());
41          }
 42          System.out.println (list.get (0) .getKey () +" "+ list.get (0 ) .getValue ());
43      }
 44 }

 

PS: factor de carga HashMap: cuando el factor de carga es grande, la posibilidad de expansión para ir a la mesa de la matriz será menor, la toma relativa de hasta menos memoria (menos espacio), pero los elementos de cada hebra sería relativamente entrada y más tiempo para la consulta crecerá (más tiempo). Por otra parte es, cuando el factor de carga es menor posibilidad de tabla de una matriz de expansión será alto, por lo que el más espacio de memoria ocupado, pero los elementos de la cadena en la entrada será relativamente pequeño, aislado tiempo se reducirá. Por lo que sólo el factor de carga es un compromiso en el tiempo y el espacio que decir. A fin de establecer el factor de carga a considerar cuando se trata de un poco más de tiempo o espacio.

Supongo que te gusta

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