Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con vectores.

Estas en el tema de Problema con vectores. en el foro de Java en Foros del Web. Estoy empezando con la programación en java y tengo muchas pequeñas dudas.Como llevo poco en la programación orientada a objetos, si me expreso de forma ...
  #1 (permalink)  
Antiguo 25/01/2012, 18:30
 
Fecha de Ingreso: diciembre-2011
Mensajes: 134
Antigüedad: 12 años, 4 meses
Puntos: 5
Problema con vectores.

Estoy empezando con la programación en java y tengo muchas pequeñas dudas.Como llevo poco en la programación orientada a objetos, si me expreso de forma errónea, os agradecería si me corrigiese.

Trabajo con eclipse y con el complemento WindowsBuilder, que nos permite crear interfaces gráficas.


Quiero crear 2 vectores y jugar un poquito con ellos, aquí están los vectores que creo.

int[] v1 = new int [10];
int[] v2 = {1,2,3,4,5};

y aquí como los implemento. en los primeros 3 casos quiero saber si un numero esta en el vector o no, y en los dos segundos casos donde se encuentra ese numero, y sino esta que me devuelva -1






if(buscar(0,v1)) lblNewLabel_2.setText("el numero 0 si esta en v1");
else lblNewLabel.setText("el numero 0 no esta en la lista v1");

if(buscar(5,v2)) lblNewLabel_1.setText("el numero 5 si esta en v2");
else lblNewLabel.setText("el numero 0 no esta en la lista v2");

if(buscar(7,v2)) lblNewLabel.setText("el numero 7 si esta en v2");
else lblNewLabel.setText("el numero 7 no esta en la lista v2");


lbl1.setText("el numero 3 de v1 esta en la pos: "+buscarPos(3,v1));
lbl2.setText("el numero 4 de v2 esta en la pos: "+buscarPos(4,v2));


private boolean buscar (int num, int[]vector)
{
for (int i=0; i<vector.length; i++)
{
if(vector [i]==num)
return (true);
}
//si llego aqui, he llegado al final del vector
// y no esta
return(false);
}




private int buscarPos (int num, int[]vector)

{
for (int i=0; i<vector.length; i++)
{
if(vector [i]==num)
return i;
}
return -1 ;
}


Los primero 3 resultados (saber si el numero esta o no) los encuentra perfectamente, pero cuando le pido que me encuentre la posición del numero, en el caso de un vector definido con este formato '' int[] v1 = new int [10]; '' me saca siempre -1, y en el otro caso saca el numero perfectamente.


No se si he sido lo suficientemente claro o si necesitáis observar mas parte del código, de ser así hacedmelo saber.
  #2 (permalink)  
Antiguo 25/01/2012, 19:51
 
Fecha de Ingreso: agosto-2011
Ubicación: Madrid
Mensajes: 185
Antigüedad: 12 años, 8 meses
Puntos: 29
Respuesta: Problema con vectores.

Si no he entendido mal estás intentando buscar un número en un vector definido como:

int[] v1 = new int [10]

, por lo que estás buscando un número en un vector vacío, sin estar inicializado. Es normal que te devuelva -1 (no encontrado, según cómo lo has definido).
  #3 (permalink)  
Antiguo 26/01/2012, 10:39
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 2 meses
Puntos: 78
Respuesta: Problema con vectores.

Hola,
lo que estás definiendo no son vectores como tal (Clase Vector), sino un array de enteros.

Quieres (o te han pedido) Vector expresamente?

Un saludo.
  #4 (permalink)  
Antiguo 26/01/2012, 18:49
 
Fecha de Ingreso: diciembre-2011
Mensajes: 134
Antigüedad: 12 años, 4 meses
Puntos: 5
Respuesta: Problema con vectores.

Cita:
Iniciado por ElAthlit Ver Mensaje
Hola,
lo que estás definiendo no son vectores como tal (Clase Vector), sino un array de enteros.

Quieres (o te han pedido) Vector expresamente?

Un saludo.
pues ... no sabría que decirte, estamos viendo el tema vectores y el profesor puso esos dos ejemplos y nos pidió ir jugando con ellos sacando la información que he dicho. poco mas puedo decirte.


que diferencia hay entre un vector y un array de enteros?
  #5 (permalink)  
Antiguo 27/01/2012, 01:52
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años
Puntos: 69
Respuesta: Problema con vectores.

Un vector es una clase que se importa de un package de Java....

Mucha gente les llama vectores a los arreglos y arreglos a los vectores o arrays, que bienen a ser la misma cosa....

cuando haces esto: int[] v1 = new int [10]; solo estas creando un arreglo con 10 espacios pero no los estas llenando, por lo que no hay ni un numero en ese arreglo...
__________________
De nada, hay te encargo +1...
  #6 (permalink)  
Antiguo 27/01/2012, 02:38
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 2 meses
Puntos: 78
Respuesta: Problema con vectores.

Yo creo que la definición más breve y exacta que te puedo hacer sobre que diferencia hay entre un array y un vector es la siguiente:

En un vector puedes almacenar todo tipo objetos, en un array solo podrás almacenar objetos del mismo tiempo que hayas definido.

Por ejemplo, un vector:

Código Java:
Ver original
  1. //Creamos y damos valor
  2. Persona p = new Persona();
  3. p.setNombre("Pepe");
  4.  
  5. Factura f = new Factura();
  6. f.setCif("123456789Z");
  7.  
  8. //Añadimos al vector
  9. Vector v = new Vector();
  10. v.add(p);
  11. v.add(f);

Un saludo!
  #7 (permalink)  
Antiguo 27/01/2012, 16:34
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Problema con vectores.

Cita:
Yo creo que la definición más breve y exacta que te puedo hacer sobre que diferencia hay entre un array y un vector es la siguiente:

En un vector puedes almacenar todo tipo objetos, en un array solo podrás almacenar objetos del mismo tiempo que hayas definido.
Pues es una definición bastante errónea

Código Javascript:
Ver original
  1. //Creamos y damos valor
  2. Persona p = new Persona();
  3. p.setNombre("Pepe");
  4.  
  5. Factura f = new Factura();
  6. f.setCif("123456789Z");
  7.  
  8. Object[] v = new Object[2];
  9. v[0] = p;
  10. v[1] = f;

Sin olvidar

Código Javascript:
Ver original
  1. Vector <Factura> vf = new Vector<Factura>();

La diferencia es la misma que con cualquiera de los objetos tipo Collection. Un array es de tamaño fijo, un vector no.

De todas formas Vector es una clase en desuso, sería mejor usar List (a menos que necesites que sea synchronized).
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #8 (permalink)  
Antiguo 27/01/2012, 18:02
 
Fecha de Ingreso: enero-2012
Ubicación: Los Angeles, CA, USA
Mensajes: 10
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Problema con vectores.

Es preciso clarificar una diferencia entre primitivos como int y clases/objetos como ... cualquier que no sea byte, short, int, long, float, double y boolean.
Los primitivos se inician automaticamente a cero (0) salvo boolean que se inicia a falso (false); mientras los objetos no se inician sino a null. Los primitivos no pueden tener el valor null.
Asi que, por ejemplo, el resultado de este programa:

Código Java:
Ver original
  1. public class MyClass01
  2. {
  3.   public static void main (String[] args)
  4.   {
  5.     int[] myInts = new int[5];
  6.     Object[] myObjects = new Object[5];
  7.     for (int i=0; i<myInts.length; i++)
  8.     {
  9.       System.out.println("myInts[" + i + "] = " + myInts[i]);
  10.     }
  11.     for (int i=0; i<myObjects.length; i++)
  12.     {
  13.       System.out.println("myObjects[" + i + "] = " + myObjects[i]);
  14.     }
  15.   }
  16. }
.. es:
Código Console:
Ver original
  1. myInts[0] = 0
  2. myInts[1] = 0
  3. myInts[2] = 0
  4. myInts[3] = 0
  5. myInts[4] = 0
  6. myObjects[0] = null
  7. myObjects[1] = null
  8. myObjects[2] = null
  9. myObjects[3] = null
  10. myObjects[4] = null

Howard Hyde, autor: 'Java Web Database Application Development' a: [URL="http://javawebdb.com"]http://javawebdb.com[/URL].
  #9 (permalink)  
Antiguo 27/01/2012, 18:07
 
Fecha de Ingreso: agosto-2011
Ubicación: Madrid
Mensajes: 185
Antigüedad: 12 años, 8 meses
Puntos: 29
Respuesta: Problema con vectores.

Os dais cuenta de la cantidad de información avanzada que le estáis dando a una persona que acaba de iniciarse en la programación en Java, que ni tiene claro lo que es la clase Vector, o un array, o un List?
  #10 (permalink)  
Antiguo 27/01/2012, 18:10
 
Fecha de Ingreso: enero-2012
Ubicación: Los Angeles, CA, USA
Mensajes: 10
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Problema con vectores.

Continuando con mi ejemplo arriba:
Si intento hacer algo con un objeto null, por ejemplo:
Código Java:
Ver original
  1. myObjects[i].toString()

...voy a recibir un error NullPointerException. Pero no hay problema con referencias a primitivos 'no iniciados':
Código Java:
Ver original
  1. myInt[i] += 7; // no echa ningún excepción
  #11 (permalink)  
Antiguo 27/01/2012, 18:13
 
Fecha de Ingreso: enero-2012
Ubicación: Los Angeles, CA, USA
Mensajes: 10
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Problema con vectores.

jav_000, saber la diferencia entre primitivos y clases/objetos es fundamental. Uno no puede funcionar en el mundo de Java desconociendo esto.
  #12 (permalink)  
Antiguo 27/01/2012, 18:17
 
Fecha de Ingreso: agosto-2011
Ubicación: Madrid
Mensajes: 185
Antigüedad: 12 años, 8 meses
Puntos: 29
Respuesta: Problema con vectores.

Cita:
Iniciado por HowardHyde Ver Mensaje
jav_000, saber la diferencia entre primitivos y clases/objetos es fundamental. Uno no puede funcionar en el mundo de Java desconociendo esto.
Estoy de acuerdo contigo, pero la curva de aprendizaje tiene que ser más suave. A una persona que está aprendiendo a multiplicar no le puedes enseñar cálculo infinitesimal directamente. Tendrá que ir pasando por etapas.
  #13 (permalink)  
Antiguo 28/01/2012, 05:46
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Problema con vectores.

Cita:
Iniciado por jav_000 Ver Mensaje
Os dais cuenta de la cantidad de información avanzada que le estáis dando a una persona que acaba de iniciarse en la programación en Java, que ni tiene claro lo que es la clase Vector, o un array, o un List?
Hombre, releyendo el hilo, lo único que veo que se le ha dicho es:

1. Que existen primitivas y objetos
2. Que un array es de tamaño fijo y un vector no.
3. Que al crear arrays, las primitivas se inician como 0/false, y objetos a null.
4. Que todos los elementos de un array tienen que ser del mismo tipo.
5. Que Vector es una clase en desuso

Si las reglas básicas de uso de arrays te parece información avanzada...

En cualquier tutorial básico de java está en las primeras páginas.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:17.