Aprendiendo JAVA (VII)


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?

  • Compartir

    Comparte tu opinión ahora


Relacionados con Aprendiendo JAVA (VII)

Temas sobre Aprendiendo JAVA (VII)

Opiniones sobre Aprendiendo JAVA (VII)

Hace 6 años y 10 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


Hace 6 años y 10 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.


Hace 1 año y 11 meses

queria saber si habeis publicado mas partes de este curso que creo que ha quedado en la parte 8. Si es asi de que hay mas por favor me gustaria seguirlas. muchas gracias.


Hace 1 año y 11 meses

Buenos días Juan Carlos, tuvimos que dejar la edicion de Aprendiendo Java... porque otra serie de proyectos requerían todo nuestro trabajo y lamentablemente esa situación no ha cambiado. Saludos.


Opina sobre Aprendiendo JAVA (VII)

Nombre:

Tu email:

Página web (si tienes):

Opinar:

Escoge el recuadro negro: para evitar spam