• Aprendiendo JAVA (VII)

    Utilidades en MilBits



Aprendiendo JAVA (VII)

Por Francisco Braña | Hace 4 años y 4 meses

java8.jpg

Un array no es mas que una colección de elementos que cumplen ciertos requisitos a saber: todos los elementes que forman un array deben ser del mismo tipo ya sean integer, char, objetos (también todos del mismo estilo), etc. y todos los elementos están identificados por un índice y tanto para darles valor como para saber que valor encierran deberemos referirnos a ellos por su numero de índice.

Como ya hemos visto anteriormente definir un array no encierra ningún problema, son correctos los siguientes enunciados:

  • int vector[];
  • int [] vector;
  • boolean array[];
  • MiObjeto listaobjeto[]; esto seria un array de objetos del tipo MiObjeto.

Después de declarado un array deberemos definirlo, es decir darle dimensión. Podríamos hacerlo de dos maneras diferentes:

  • int vector[];
  • vector=new int[10]; El array vector cuenta con 10 elementos del tipo integer y sus índices irán desde el vector[0] hasta el vector[9].

También podríamos unir los dos pasos de la siguiente manera:

  • int vector[]=new int[30];

E incluso podemos declarar, definir e inicializar en un solo paso:

  • int vector[]={2, 5, 8, 6, 3};

La clase util.* de java contiene algunas utilidades para las array que seguro que utilizaremos en múltiples ocasiones. Tenemos por ejemplo un método para ordenar el array, para realizar comparaciones, etc.

A continuación abriremos nuestra aplicación Eclipse y crearemos un proyecto con el nombre de seis al que añadiremos la clase arrays y la clase testarrays con la opción public static void main(String[] args) marcada.

Lo que nos proponemos hacer es solicitar al usuario el tamaño para dos array de números enteros. Posteriormente que nos de los números que hay que poner en cada array y realizar con ellos las siguiente operaciones: ¿cual es el elemento mayor y menor de las dos arrays?, realizar la suma de todos sus elementos por separado y todos juntos, mostrar al usuario los valores de las array sin ordenar y ordenadas. Nuestro codigo podria quedar mas o menos asi:

  • import java.util.*;
  • public class arrays {
  • private int numelepri;//numero de elementos para la primera array
  • private int numeleseg;//numero de elemtneos para la segunda array
  • Scanner sc=new Scanner(System.in);
  • public int getNumelepri() {
  • return numelepri;
  • }
  • public void setNumelepri(int numelepri) {
  • this.numelepri = numelepri;
  • }
  • public int getNumeleseg() {
  • return numeleseg;
  • }
  • public void setNumeleseg(int numeleseg) {
  • this.numeleseg = numeleseg;
  • }
  • void OperacionesArray(){
  • System.out.println("Numero elementos primer array: ");
  • setNumelepri(sc.nextInt());
  • System.out.println("Numero elementos segundo array: ");
  • setNumeleseg(sc.nextInt());
  • int primerarray[]=new int[getNumelepri()];//primera array
  • int segundarray[]=new int[getNumeleseg()];//segunda array
  • System.out.println("Introduce " + getNumelepri() + " elementos");
  • for(int indice=0; indice<primerarray.length; indice++){
  • System.out.println("Elemento numero " +
  • (indice+1)+ " del primer array: ");
  • primerarray[indice]=sc.nextInt();
  • }
  • System.out.println("Primera array completada");
  • for(int indice=0; indice<segundarray.length; indice++){
  • System.out.println("Elemento numero " +
  • (indice+1)+ " del segundo array:");
  • segundarray[indice]=sc.nextInt();
  • }
  • System.out.println("Segunda array completada");
  • int numeromayor=primerarray[0];
  • int numeromenor=primerarray[0];
  • int suma=0;
  • for(int valor: primerarray){
  • if(numeromayor<valor) numeromayor=valor;
  • if(numeromenor>valor) numeromenor=valor;
  • suma+=valor;
  • }
  • System.out.println("El numero mayor del primer array es: " + numeromayor);
  • System.out.println("El numero menor del primer array es: " + numeromenor);
  • System.out.println("El total de la primera array es: " + suma);
  • int segundamayor=segundarray[0];
  • int segundamenor=segundarray[0];
  • int segundasuma=0;
  • for(int segundovalor: segundarray){
  • if(segundamayor<segundovalor) segundamayor=segundovalor;
  • if(segundamenor>segundovalor) segundamenor=segundovalor;
  • segundasuma+=segundovalor;
  • }
  • System.out.println("El numero mayor del segundo array es: " + segundamayor);
  • System.out.println("El numero menor del segundo array es: " + segundamenor);
  • System.out.println("El total de la segunda array es: " + segundasuma);
  • int total=segundasuma+suma;
  • System.out.println("La suma total es: " + total);
  • System.out.println("Elementos sin ordenar del primer array");
  • for(int elemento: primerarray){
  • System.out.print(elemento + ", ");
  • }
  • System.out.println("");
  • System.out.println("Elementos ordenados del primer array");
  • Arrays.sort(primerarray);
  • for(int elemento: primerarray){
  • System.out.print(elemento + ", ");
  • }
  • System.out.println("");
  • System.out.println("Elementos sin ordenar de la segunda array");
  • for(int elemento: segundarray){
  • System.out.print(elemento + ", ");
  • }
  • System.out.println("");
  • System.out.println("Elementos ordenados de la segunda array");
  • Arrays.sort(segundarray);
  • for(int elemento: segundarray){
  • System.out.print(elemento + ", ");
  • }
  • }
  • }

Como podemos observar en el principio de la clase no hacemos nada que llame la atención. Creamos los atributos que estarán destinados a recoger el número elementos de que constaran ambas arrays, una variable de la clase Scanner para poder capturar los valores por el teclado, los setters y los getters con los que escribiremos y leeremos en los atributos.

Después de declarar el método OperacionesArray le pedimos al usuario que nos diga el número de elemento de cada array y lo capturamos directamente con el método get de ambos atributos.

primerdato.JPG

Después solicitamos que introduzcan los elementos de la primera y de la segunda array. Para ello utilizamos un bucle for clásico. El índice del array será el propio índice del bucle e iremos añadiendo el valor a medida que el usuario lo introduzca en pantalla.

segundodato.JPG

Una vez completadas ambas arrays podemos comenzar a realizar operaciones y mostrarla por la consola.

Lo primero que mostraremos es el número mayor, el número menor y la suma de todos sus elementos del primer array. Después realizaremos la misma operación con la segunda array.

A continuación mostraremos la suma total de ambas arrays. Los elementos sin ordenar y ordenados de la primera array e igual con la segunda array. Así daremos el ejercicio por terminado.

Queda claro que podemos recorrer un array tanto con el for clásico como con el for mejorado y su uso dependerá simplemente de lo que nos resulte mas cómodo en cada momento.

tercerdato.JPG

Enlaces interesantes


  • ¿Qué te ha parecido el artículo?



    Comparte tu opinión ahora

  • Compartir con mis amigos

  • Ponte al día en informática

    Recibe gratis los nuevos artículos en tu email


Opiniones

  • in

    Hace 4 años y 4 meses

  • Demasiados fallos para compilarlo sino tienes conocimiento previos y muchas ganas de pensar. Si os interesa el código corregido poneos en contacto conmigo (webmaster) o cualquier persona j_dani_1@hotmail.com

  • Francisco

    Hace 4 años y 4 meses

  • Hemos comprobado que el formato automático del código cortaba partes de las líneas de mismo, creando un código incorrecto.
    Ya hemos solucionado el problema y se ha repasado todo el código publicado, esperamos que de ahora en adelante se formatee de forma correcta. De todos modos si alguien observar algo extraño agradecemos siempre los avisos. Gracias a todos y disculpar las molestias.


    Comparte tu opinión

    Tu opinión es importante para todos nosotros.

    *

    *

    Ej: http://www.portalprogramas.com/

    *