Noticias

* Completa este formulario para conocer los temas de tu interes, te tomará unos segundos.
* Nuevos temas en CAKEPHP
* Ahora puedes bajar los proyectos finalizados!
* Sigue a la página para seguir creciendo!!

martes, 1 de mayo de 2012

Java: Vectores o Arrays (Parte II)

No hay comentarios :
Introducción

En la parte uno, sobre este tema se dió una introducción al tema de los vectores o arrays, en esta entrada se darán ejemplos para aprender a trabajar con estas estructuras.

Desarrollo

Otra forma de llenar vectores es asignando los valores cuando se inicializa, a eso se le llama dar valores estáticos debido a que no se llenan los espacios del vector de una manera dinámica, a continuación se da un ejemplo:

String[] vector = {"Una", "Frase", "en", "el", "Vector"};

El vector de String que acabamos de crear tiene un largo de 5 (de 0 a 4), y como ven no hubo necesidad de hacer algo como lo siguiente:

String[] vector = new String[5];
vector[0] = "Una";
vector[1] = "Frase";

Y así sucesivamente hasta terminar la frase o usar el .split() para transformar el String a vector. Click acá para conocer más sobre .split()

En muchos casos necesitamos conocer el largo o tamaño del vector o array, en este caso existe una propiedad de estos que se llama length, esta propiedad lo que nos da a conocer es cuantas posiciones tiene el vector, sin embargo, la cuenta es normal, es decir, empieza en uno y no en cero como cuando se trabaja con el vector. Entonces, si el length nos retorna un cinco, quiere decir que las posiciones van de cero a cuatro.

Utilizando el array creado anteriormente y al imprimir en consola el tamaño, este nos dará como resultado cinco.

System.out.println(vector.length);

Para imprimir todo el vector solo hay que hacer un bucle for, teniendo en cuidado en definir el tamaño del vector adecuado para que no ocurra un desbordamiento.

String palabra ="";
for (int i = 0; i < vector.length; i++) {
    palabra += vector[i] + " ";
}
System.out.println(palabra);

Notar que la condición del for dice solo menor, esto porque el vector cuenta desde cero pero el punto .length no, por tanto, si le colocamos menor igual se desborda, aunque si se escribe el menor igual se puede poner un -1 al final del .length, entones el código quedaría así:

for (int i = 0; i <= vector.length - 1; i++) {
palabra += vector[i] + " ";
}

Ahora ¿para que sirve el espacio que le concatenamos a la posición del vector?, ese espacio es para que las palabras no salgan pegadas una a las otras y que el texto se pueda leer correctamente, si se quita no se van a diferenciar las palabras, por ejemplo:

Impresión con espacio: Una Frase en el Vector.
Impresión sin espacio: UnaFraseenelVector.

En el siguiente ejemplo de uso de arrays o vectores vamos a comparar contenidos.
String[] vector = { "Una", "Frase", "en", "el", "Vector" };
String[] vector2 = { "Una", "Frase", "dentro", "del", "Vector" };
String salida = "Son iguales";

for (int i = 0; i < vector.length; i++) {

    if (!(vector[i] == vector2[i])) {
        i += vector.length;
        salida = "no son iguales";
    }
}
System.out.println(salida);

En este caso tenemos vector y vector2, un String salida que nos dirá si los vectores son o no iguales, el for normal que aprendimos antes para recorrer el vector, le agregamos un if para que nos compare las posiciones con el mismo índice de los dos vectores, si ven bien el if tiene antes de evaluar la condición un signo de admiración se preguntarán ¿para que sirve eso?, bueno ese signo de admiración es para hacer la negación de algo, la condición del if lo que da es un true o false, cuando las posiciones del los vectores se evalúan el if sin el signo de admiración hace esto: ¿son iguales las dos posiciones?... sí... entonces entraría, nuestro if con el signo de admiración hace esto: ¿las posiciones del vector son distintas?... sí... entonces entra. 

Este tipo de evaluación es una alternativa, se puede hacer con != que vendría siendo lo mismo.

Explicaré mejor solo esta parte del if:

    if (vector[i] == vector2[i]) retorna true si son iguales, entonces entra,

    if (!(vector[i] == vector2[i])) la evaluación retorna true si son iguales, pero el signo de admiración lo niega, si recordamos la negación de true es false, por tanto el resultado final es false y no entra.

    if (!(vector[i] == vector2[i])) suponiendo que las posiciones son distintas retorna false, la negación de false es true, entonces entraría al if y terminaría el proceso para que no siga evaluando los demás campos si ya con solo una palabra que sea diferente los vectores serán diferentes y le asigna el otro valor al String salida.

Conclusiones

Existen muchos otros casos y posibilidades al trabajar con arrays que no se explicaron en la entrada, debido a que esta es solo una introducción y el uso que se le dé a los arrays o vectores es muy amplia.

La facilidad de utilizar vectores es de gran ayuda para el programador, porque le facilita realizar tareas con grupos de valores.

No hay comentarios :

Publicar un comentario