hacker


Ingresar con nombre de usuario, contraseña y duración de la sesión
| Portal Hacker | Editorial | Descargas | Ezine |
Inicio Ayuda Ingresar Registrarse
06 de Octubre de 2008, 06:51:23
Noticias: Convocatoria E-zine CPH #2
Para ver este enlace Registrate o Inicia Sesion
> Aquí

+  Foros pOrtal Hacker
|-+  Programacion
| |-+  JAVA (Moderador: kamui23)
| | |-+  Tablas Hash en Java
0 Usuarios y 2 Visitantes están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Tablas Hash en Java  (Leído 2255 veces)
MaximusBlack
Recien llegado
*
Desconectado Desconectado

Mensajes: 11



Ver Perfil
« : 24 de Enero de 2008, 11:49:00 »

Como se programa una tabla hash!!!! Y que es una tabla has exactamente!!!!!
En línea
k0be
NZ2
**
Desconectado Desconectado

Mensajes: 111


Ver Perfil
« Respuesta #1 : 24 de Enero de 2008, 02:40:39 »

Una tabla hash no es mas que una estructura de datos para asociar valores con llaves. Imaginate algo asi

LLave => Valor

Carlos => Mexico
Jose => China
Juan => USA
Ernesto => Peru

Ahi estariamos relacionando un grupo de nombres con su pais de origen.

En java la implementacion seria con la clase Hashtable, aunque mas recientemente se ha favorecido el uso de Hashmap que es muy similar pero con pequeñas diferencias.

Esta es una implementacion de una hashtable en java, no hace nada en especial... solo relaciona numeros con mas numeros de forma automatica

Código:
import java.util.*;


public class hash {
   
  public static void main (String args[]) throws Exception {
    Hashtable hash = new Hashtable(10,10);

    for (int i = 0; i <= 100; i++)
    {
Integer entero = new Integer ( i );
hash.put( entero, "Numero : " + i);
    }

    for (Enumeration e = hash.keys(); e.hasMoreElements();)
    {
System.out.println (hash.get(e.nextElement()));
    }
 }
   
}
En línea
MaximusBlack
Recien llegado
*
Desconectado Desconectado

Mensajes: 11



Ver Perfil
« Respuesta #2 : 25 de Enero de 2008, 11:21:27 »

Como se hace para vr las coliciones de un progrmaa!!!
« Última modificación: 06 de Febrero de 2008, 03:23:26 por MaximusBlack » En línea
k0be
NZ2
**
Desconectado Desconectado

Mensajes: 111


Ver Perfil
« Respuesta #3 : 25 de Enero de 2008, 07:45:52 »

Preparar un programa (en JAVA) de TABLA HASH, que debe procesar por medio de su función HASH las 2400 palabras disponibles para generar un código hash y luego un mapeo de compresión que establezca un número de clave, que luego depositará la información proveída de un TXT en un arreglo de datos (la tabla). El programa, luego de procesar debe presentar la siguiente información: la función que ejecutó, las claves con colisión y que palabras contienen, también debe desplegar el factor de carga de la tabla, debe desplegar al final el programa quiénes lo hicieron, cuántas veces tuvo que ejecutar el algoritmo de colisiones y cuál es, cuál es el cluster más grande y el cluster más pequeño (en tamaño) y cuántos clusters se formaron en la tabla hash. Además debe permitir el programa cambiar la función hash fácilmente, puesto que cambiaremos la dimensión del arreglo que inicialmente es de 4800 celdas o solicitaremos que se utilicé alguna otra función. El algoritmo de colisiones asociado a la tabla hash es libre de elección.

¿COMO LO HAGO PUES LA TEORIA YA LE ENTENDI PERO LA PROGRAMACION NO?Huh??

deberias tratar de hacer algo y luego pedir ayuda donde te atores... dificilmente alguien te va hacer tu tarea completa, ademas de que seria mas facil entender que es exactamente lo que quieres si ya das una pauta para iniciar.
En línea
daom11
NZ2
**
Desconectado Desconectado

Mensajes: 136


Ver Perfil
« Respuesta #4 : 30 de Enero de 2008, 06:39:48 »

te voy a dar unos tips.

1.- java trae una api para las hash java.util.Hash table

2.- debes usar clases del paquete java.io para escribir en el archivo.

3.- el método    hashCode() de la clase string también te puede servir.

saludos...
En línea
rafaelsk
Visitante
« Respuesta #5 : 02 de Febrero de 2008, 10:33:44 »

¿COMO LO HAGO PUES LA TEORIA YA LE ENTENDI PERO LA PROGRAMACION NO?Huh??

Gente que ayuda a otros ? >>>>>>> SI
Esclavos que hagan tu tarea ? >>>> NO

Supongo que ese par de implicaciones directas estan mas que claras. no mas palabras Smiley
En línea
MaximusBlack
Recien llegado
*
Desconectado Desconectado

Mensajes: 11



Ver Perfil
« Respuesta #6 : 05 de Febrero de 2008, 04:31:42 »

import java.io.Buffer edReader;
import java.io.FileRe ader;
import java.io.IOExce ption;
import java.io.InputS treamReader;

// highArray.java
// demonstrates array class with high-level interface
// to run this program: C>java HighArrayApp

////////////////////////////////////////////////////////////////
class HighArray
{
   private double[] a; // ref to array a
   private int nElems; // number of data items
   //----------------------------------------------------------
   public HighArray(int max) // constructor
   {
      a = new double[max]; // create the array
      nElems = 0; // no items yet
   }
   //----------------------------------------------------------
   public boolean find(double searchKey)
   { // find specified value
      int j;
      for(j=0; j<nElems; j++) // for each element,
         if(a[j] == searchKey) // found item?
            break; // exit loop before end
      if(j == nElems) // gone to end?
         return false; // yes, can't find it
      else
         return true; // no, found it
   } // end find()
   //----------------------------------------------------------
   public void insert(double value) // put element into array
   {
      a[nElems] = value; // insert it
      nElems++; // increment size
   }
   //----------------------------------------------------------
   public boolean delete(double value)
   {
      int j;
      for(j=0; j<nElems; j++) // look for it
         if( value == a[j] )
            break;
      if(j==nElems) // can't find it
         return false;
      else // found it
      {
         for(int k=j; k<nElems; k++) // move higher ones down
            a[k] = a[k+1];
         nElems--; // decrement size
         return true;
      }
   } // end delete()
   //----------------------------------------------------------
   public void display() // displays array contents
   {
      for(int j=0; j<nElems; j++) // for each element,
         System.out.print(a[j] + " "); // display it
      System.out.println("");
   }
   //----------------------------------------------------------
} // end class HighArray
public static void main(String[] args) throws IOException
{
   int size, n, keysPerCell;
   String aKey="";
   HighArray = new HighArray();
   // get sizes
   System.out.print("Tamaño: ");
   size = getInt();
   System.out.print("Numero de datos que se van a ingresar: ");
   n = getInt();
   keysPerCell = 10;
   // make table
   HashTable theHashTable = x.new HashTable(size);        
   String inputFileName  = "Listado de 5000.txt";
   try{
//      Create FileReader Object          
      FileReader inputFileReade r   = new FileReader(inputFileName);             
      BufferedReader inputStream   = new BufferedReader(inputFileReade r);             
      String inLine = null;             

      while ((inLine = inputStream.re adLine()) != null) {   
         DataItem aDataItem;
         aKey = inLine;               
         aDataItem = x.new DataItem(aKey);            
         theHashTable.insert(aDataItem);                        
      }             
      System.out.println("Colisiones: "+x.contadorColision);
   }
   catch (IOException e){
      System.out.println("IOException:");   
   }
   while(true)                   // interact with user
   {
      System.out.println("Ingrese la primer letra de lo que desea hacer: \n");
      System.out.print("1. Mostrar Tabla(m)\n2. Insertar(i)\n3. Eliminar(e)\n4. Buscar(b)");
      char choice = getChar();
      switch(choice)
      {
      case 'm':
         theHashTable.displayTable();
         break;
      case 'i':
         System.out.print("Ingrese el valor a insertar: ");
         DataItem aDataItem;   
         aKey = getString();
         aDataItem = x.new DataItem(aKey);            
         long t = System.nanoTim e();
         theHashTable.insert(aDataItem);
         long t0 = System.nanoTim e();
         System.out.println("tiempo: ");
         System.out.print(t0-t);
         System.out.println(" nanosegundos");
         break;
      case 'e':
         System.out.print("Ingresa el valor a eliminar: ");
         aKey = getString();            
         long t1 = System.nanoTim e();
         aDataItem = theHashTable.d elete(aKey);
         long t2 = System.nanoTim e();
         System.out.println("tiempo: ");
         System.out.print(t2-t1);
         System.out.println(" nanosegundos");
         //if (aDataItem == null)
         //System.out.println("no existe el dato");
         break;
      case 'b':
         System.out.print("Ingrese el valor a buscar: ");
         aKey = getString();
         long t3 = System.nanoTim e();
         aDataItem = theHashTable.f ind(aKey);
         long t4 = System.nanoTim e();
         System.out.println("tiempo: ");
         System.out.print(t4-t3);
         System.out.println(" nanosegundos");
         if(aDataItem != null)
         {
            System.out.println("Encontrado: " + aKey);
         }
         else
            System.out.println("No se pudo hallar el valor " + aKey);
         break;
      default:
         System.out.print("Entrada invalida\n");
      }  // end switch
   }  // end while
}  // end main()
//--------------------------------------------------------------
public static String getString() throws IOException
{
   InputStreamReader isr = new InputStreamRea der(System.in);
   BufferedReader br = new BufferedReader(isr);
   String s = br.readLine();
   return s;
}
//--------------------------------------------------------------
public static char getChar() throws IOException
{
   String s = getString();
   return s.charAt(0);
}
//-------------------------------------------------------------
public static int getInt() throws IOException
{
   String s = getString();
   return Integer.parseI nt(Roll Eyes;
}

//--------------------------------------------------------------
// end class HashTableApp
///////////////////////////////////////////////////////////////
}   

« Última modificación: 06 de Febrero de 2008, 03:25:04 por MaximusBlack » En línea
Páginas: [1] Ir Arriba Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC hacker

Juegos gratis - Articulos PHP - Juegos - Trucos - Letras - Juegos - Juegos Online