Aprendiendo JAVA (VII)
Por Francisco | 15 de Octubre de 2007 | 2 comentarios

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.
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.
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.
Enlaces interesantes
Valora este artículo
¿Te ha gustado este artículo?
¿Quieres opionar?, tu opinión nos interesa
Suscríbete a nuestro feed y recibirás muchos más gratis.
Artículos relacionados
