¡Urgente! Utilice el lenguaje JAVA para implementar experimentos de estructura de datos.
Te envié lo que pasé la mayor parte del día escribiendo para ti. No escribí los comentarios con cuidado. Si no entiendes nada o si tienes algún pequeño error, déjame un mensaje. .
importar java.io.BufferedReader
importar java.io.FileInputStream
importar java.io.FileNotFoundException
importar; java.io.IOException;
importar java.io.InputStreamReader
importar java.util.ArrayList
importar java.util.Enumeration; p>
importar java.util.Enumeration;
p>
importar java.util.Hashtable
importar java.util.Iterator; p>importar java.util.List;
importar java. util.Vector;
prueba de clase pública {
//archivo de lectura de E/S
p>public String getFile(Ruta de cadena) {
StringBuffer contexto = new StringBuffer()
prueba {
BufferedReader br = new BufferedReader( new InputStreamReader(new FileInputStream(ruta)));
String temp = br.readLine()
while (temp!=null) {
contexto; .append(temp "\n");
temp = br.readLine();
}
} captura (FileNotFoundException e) {
// TODO Bloque catch generado automáticamente
e.printStackTrace();
} catch (IOException e) {
// TODO Auto -bloque de captura generado
e.printStackTrace();
}
return context.toString().toLowerCase(); }
//Método de contenido dividido
Lista pública mySplit(String context) {
String[] palabras = {}
; Listar todo = new ArrayList();
//Presione Puntuación, expresión regular para dividir el contenido
String regex = "\\W"; //[():,./ '\"\n\r\f\\s-] p>
palabras = contexto.split(regex);
for(int i=0; ilt; palabras.longitud; i) {
if(!words[i ].equals(""))//Eliminar espacios
al
l.add(words[i]);
}
return all;
}
//Cuenta todas las palabras y sus Número
public Hashtable contWords(List all) {
//Se utiliza para guardar todas las palabras y su número
Hashtable allTable = new Hashtable()
; p>
for(int i=0; ilt; all.size(); i ) {
//Dos variables temporales, una clave y un valor
Temp de cadena = all.get(i).toString();
int count = 0
for(int j=0; jlt; all.size(); j ) {
if(temp.equalsIgnoreCase(all.get(j).toString())) {
cuenta
}
}
allTable.put(temp, count);
}
devuelve toda la tabla
}
/ /Encuentra las cinco palabras con el número más grande
public Hashtable findMax5(Hashtable allTable) {
//Hashtable usado para guardar los resultados
Hashtable result = new Hashtable();
Objeto[] keyToValue = allTable.entrySet().toArray();
Objeto[] valores = allTable.values().
int[] v = new int[5];
for(int i=0; ilt; valores.longitud; i) {
int valor = Integer.parseInt(values[i].toString());
int min = findMin(v
if(valuegt;min) {
p>
for(int j=0; jlt; v.length; j) {
if(v[j]==min) {
v[j ] = valor;
descanso
}
}
}
}
//Ordena los elementos en v de mayor a menor
for(int i=0; ilt; v.length; i) {
for(int j= i 1 ; jlt; v.longitud; j ) {
if(v[i]lt; v[j]) {
int temp = v[i]; p>
v[i] = v[j];
v[j] = temporal
}
}
}
for(int i=0; ilt; v.length; i) {
// System.ou
t.println(v[i]);
for(int j=0; jlt; keyToValue.length; j ) {
String ktv = keyToValue[j].toString(
int tv = Integer.parseInt(ktv.substring(ktv.indexOf("=") 1));
if(v[i]==tv) {
//Garantiza tomar solo las cinco palabras más frecuentes
if(result.size()gt;=5) break
String key = ktv; .substring(0, ktv.indexOf("="));
resultado.put(clave, v[i]);
}
devuelve resultado;
}
//Búsqueda simple del número más pequeño en la matriz
público int findMin(int[] v) {
for(int i=0; ilt; v.length-1; i) {
if(v[i]lt ; v[i 1]) {
int temp = v[i]
v[i] = v[i 1]; i 1] = temp;
}
}
retorno v[v.length-1]; >
//Imprimir el resultado
public static void printResult(Resultado de tabla hash) {
System.out.println("Las cinco palabras principales son las siguientes:");
Enumeración e = resultado.keys();
Iterador it = resultado.values().iterator()
mientras (e.hasMoreElements(); ) {
System.out.println(e.nextElement() " El número es: " it.next());
}
}
//método principal
public static void main(String[] args) {
Prueba prueba = new Test()
; Contexto de cadena = test.getFile("c:/test3.txt");
Listar todo = test.mySplit(contexto
Hashtable allTable = test.contWords(all )
Resultado de la tabla hash = test.findMax5(allTable);
// System.out.println(resultado);
Test.printResult(resultado);
}
}