elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Método que "puede o no" devolver un entero
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Método que "puede o no" devolver un entero  (Leído 2,437 veces)
NikNitro!


Desconectado Desconectado

Mensajes: 1.309


Galletaaa!!!


Ver Perfil WWW
Método que "puede o no" devolver un entero
« en: 19 Diciembre 2013, 22:52 pm »

Buenas. Me encuentro implementando una tabla hash  y  el método int searchIdx(K key) debería devolver o null si el elemento no está, o el hash de la key. La duda es que no se que poner. Se que en Haskell se puede poner (algo así, no estoy seguro del todo, tendría que mirarlo para confirmarlo) como data res = nothing | integer

El código es el siguiente:

Código:
public class LinearProbingHashTable<K,V> implements HashTable<K,V>{

private K keys[];
private V values[];
private int size;
private double maxLoadFactor;
...
...
       /**
* Takes key of association and returns
* its insertion position in the table.
         * Collisions must be resolved using linear probing algorithm)
*/
private int searchIdx(K key) {
// to be completed
int idx = hash(key);
while(!(keys[idx] == null)) {
if(keys[idx] == key){
return idx;
} else {
idx++;
}
}
return null;
}

por supuesto me da error en el return null pues me dice que éste no es un entero... ¿Qué debo hacer?

Gracias ;)


En línea

ThinkByYourself

Desconectado Desconectado

Mensajes: 191


Ver Perfil
Re: Método que "puede o no" devolver un entero
« Respuesta #1 en: 19 Diciembre 2013, 23:31 pm »

En lugar de int pones Integer y no problemo


En línea

No te voy a engañar.
Todos hemos sido programados para normalizar la psicopatía de las élites económicas y políticas, y para realimentar su patrón de ciega codicia.
dainodaibouken

Desconectado Desconectado

Mensajes: 39



Ver Perfil
Re: Método que "puede o no" devolver un entero
« Respuesta #2 en: 19 Diciembre 2013, 23:45 pm »

por que no intentas con un parsing
En línea

Mitsu

Desconectado Desconectado

Mensajes: 259



Ver Perfil WWW
Re: Método que "puede o no" devolver un entero
« Respuesta #3 en: 20 Diciembre 2013, 13:41 pm »

Según lo que recuerdo, un HashMap o en su versión antigua un HashTable (deprecated) no podía tomar un key value null. Ya que null no es un objeto, ¿cómo podrías llamar a equals(Object o) o a hashCode()?

No utilices HashTable, utiliza HashMap y ten en cuenta que por cuestión de buena programación y estructura, una key no puede ser null.
« Última modificación: 20 Diciembre 2013, 13:53 pm por Mitsu » En línea

Nasty35

Desconectado Desconectado

Mensajes: 77


Ver Perfil
Re: Método que "puede o no" devolver un entero
« Respuesta #4 en: 21 Diciembre 2013, 15:56 pm »

Haces un return 0, y con un if compruebas que si retorna 0, es por un error (y lo manejas).
En línea

NikNitro!


Desconectado Desconectado

Mensajes: 1.309


Galletaaa!!!


Ver Perfil WWW
Re: Método que "puede o no" devolver un entero
« Respuesta #5 en: 22 Diciembre 2013, 16:01 pm »

Resulta que lo estaba planteando mal. Ese método debe devolver el índice en el que debería estar la key... Esté ella o no, asi que devuelve siempre un número positivo ;)

Salud

PD: Si quereis algo del código pedidmelo ;)
En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Método que "puede o no" devolver un entero
« Respuesta #6 en: 22 Diciembre 2013, 22:43 pm »

No puedes devolver un null en un método que retorna un valor de tipo primitivo, por eso el error.

En este caso debes utilizar un Wrapper class como ha dicho @NoBullshit, o retornar un 0 pero en ese caso quizás deberías modificar algunas lineas de código para que funciona.

Saludos.
En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines