CONTACTO

Encuentra información referente a la programación, diseño gráfico, electrónica y mucho más, la página está pensada para compartir contenido educativo relevante coadyuvando a su aprendizaje diario.


Arrays o arreglos en Java

Los arrays o también llamado arreglos en la programación Java, es un conjunto de valores del mismo tipo guardados en una misma variable y accesible a cada valor de forma independiente, pueden ser unidimensionales o multidimensionales, los arrays o arreglos de Java son muy útiles cuando necesitamos utilizar muchas variables del mismo tipo y para manejar tantos datos se hace muy complicado, por lo cual se prefiere utilizar un array para estos casos.

Array o arreglo unidimensional

Un array (o arreglo) unidimensional está formado por una sola fila, es decir que solo trabaja en una dimensión, estos array son usados cuando deseamos guardar múltiples valores del mismo tipo pero en una sola variable, su aplicación dependerá del tipo de proyecto que deseamos hacer, por ejemplo si queremos guardar las calificaciones de un conjunto alumnos podríamos utilizar un array unidimensional y hacer algunas operaciones matemáticas con estos datos.

Usualmente estos array en la programación en Java se usan para guardar valores numéricos que cambian en el tiempo de ejecución.

Sintaxis

tipo nombre[];

Cuando declaramos un array unidimensional y queremos recorrer este array para obtener un valor guardador debemos empezar desde la posición 0, puesto que cuando declaramos un array unidimensional la posición de los valores guardados empieza desde el 0 hasta la posición n-1 donde n es igual al número declarado en el array unidimensional.

Arrays o arreglos en Java creatividad codificada

Inicializando un array unidimensional en Java

Los arreglos en la programación Java se puede inicializar usando el operador new para crear la instancia del array indicando el tamaño.

int calificaciones[]; //sería válido también int[] calificaciones;
calificaciones = new int[10]; //indica que el array constará de tres valores de tipo int
//También se puede hacer todo a la vez
//int calificaciones[]=new int[10]

Los array unidimensionales se pueden inicializar las veces que queramos, pero debemos tomar en cuenta que cuando hacemos esto se pierde todo el contenido del array antes referenciado.

int notas[]=new notas[16];
...
notas=new notas[25];

Asignación de valores en un array unidimensional en Java

Cuando queremos asignar valores a un array unidimensional lo podemos hacer de distintas maneras, se la pude hacer directamente cuando declaramos el array y asignarle un valor o declarar el array y posteriormente asignar sus valores.

calificaciones[2]=68;
int calificaciones[] = {80, 77, 68};
int calificaciones[]= new int[] {80,77,68};//Equivalente a la anterior

Gracias a las estructuras de control repetitivas while, do while o for de Java podemos rellenar y obtener fácilmente los valores de un array unidimensional.

Un array unidimensional puede asignar sus valores a otro array unidimensional, pero los dos array deben ser del mismo tipo.

int notas[];
int ejemplo[]=new int[10];
notas=ejemplo;

Ejemplo de un array (arreglo) unidimensional en Java

import java.util.Scanner;
/**
 *
 * @author Creatividad Codificada
 */
public class ArrayUnidimensional {
    /**
     * @param args the command line arguments
     */

    public static void main(String[] args) {
    Scanner t = new Scanner (System.in);
    int dim;
    int notas[];
    
    
    // lee la dimesion del array
    System.out.print("DIGITE LA DIMESION DEL ARRAY NOTAS: ");
	dim=t.nextInt();
        notas = new int [dim];
	System.out.println("INTRODUZCA LOS VALORES DEL ARRAY");
	for (int k=0;k<dim;k++)
	{
		System.out.print("notas [ "+ k + "] = ");
		notas[k]=t.nextInt();
	}
        
        
        // Ordena de forma ascendente el array
	int aux;
	for (int i=0;i<dim;i++)
		for (int j=0;j<dim-1;j++)
		{
			if (notas[j]>notas[j+1])
			{
				aux = notas[j];
				notas[j]=notas[j+1];
				notas[j+1]=aux;
			}
		}
        
        
/* Arrays.sort(notas) tambien ordena el array 
de forma ascendente, se debe usar import java.util.Arrays;
*/
        
        
        //Imprime en consola el array ordenado
	System.out.println("ARRAY ORDENADO");
	for (int k=0;k<dim;k++)
        System.out.println("notas [ " +k+ " ] = "+notas[k]);

    }
    
}

Resultado

DIGITE LA DIMESION DEL ARRAY NOTAS: 7
INTRODUZCA LOS VALORES DEL ARRAY
notas [ 0] = 78
notas [ 1] = 71
notas [ 2] = 88
notas [ 3] = 65
notas [ 4] = 45
notas [ 5] = 51
notas [ 6] = 16
ARRAY ORDENADO
notas [ 0 ] = 16
notas [ 1 ] = 45
notas [ 2 ] = 51
notas [ 3 ] = 65
notas [ 4 ] = 71
notas [ 5 ] = 78
notas [ 6 ] = 88

Array (arreglo) multidimensional en Java

Estos array tienen la característica de trabajar con dos o más dimensiones, esto quiere decir que puede haber un array que contenga otro array.

Arrays o arreglos en Java creatividad codificada

Para entender mejor imagínense un cubo de Ruby donde cada cuadradito es un contenedor que guarda un elemento del array (arreglo) multidimensional que guarda un valor y si hablamos de tamaño un cubo Ruby sería un array de 3x3x3.

Sintaxis

int notas[][];

Inicializando un array multidimensional en Java

Al igual que los array unidimensionales para inicializarlo debemos utilizar el operador new indicando el tamaño.

notas = new int[3][12]; // inicializamos un array notas de 3x12

Pero no es la única forma de inicializar un array multidimensional, podemos hacerlo incluso de forma más creativa.

int notas[][]=new int[5][]; // De esta forma podemos asignar el tamaño faltante posteriormente       //según nuestra conveniencia  
notas[0]=new int[10]; // El primer array tendrá 10 enteros
notas[1]=new int[30]; // El segundo array tendrá 30 enteros
notas[2]=new int[40]; // El tercer array tendrá 40 enteros
notas[3]=new int[10]; // El cuarto array tendrá 10 enteros
notas[4]=new int[20]; // El quinto array tendrá 20 enteros

Asignación de valores en un array multidimensional en Java

Para asignar valores a un array multidimensional de forma directa se la hace similar a los unidimensionales, solo que se separa mediante llaves y comas.

int notas [][] = {{1,2,3},{4,5,6},{7,8,9}}; // Declaramos un array de 3x3 con valores del 1 al 9

Para asignar o recuperar varios valores de un array multidimensional se usa comúnmente las estructuras de control repetitivas o iterativas while, do while o for.

Ejemplo de array multidimensional en Java

import java.util.Scanner;
/**
 *
 * @author Creatividad Codificada
 */
public class ArrayMultidimensional {

    //fondo verde para la consola
    public static final String ANSI_GREEN_BACKGROUND = "\u001B[42m";
    
    //fondo azul para la consola
    public static final String ANSI_BLUE_BACKGROUND = "\u001B[44m";
    
    //color azul para las letras de consola
    public static final String ANSI_BLUE = "\u001B[34m";
    
    //color blanco para las letras de consola
    public static final String ANSI_WHITE = "\u001B[37m";
    
    public static void main(String[] args) {
        
        Scanner en = new Scanner (System.in);
        byte dim = 3; // DIMENSION DE LA MATRIZ
        int aux = 0; 
        int matriz[][] = new int [dim][dim];
        System.out.println(ANSI_GREEN_BACKGROUND+"SUMA DE LA DIAGONAL DE UNA MATRIZ CUADRADA");
        System.out.println("INGRESE LOS VALORES DE LA MATRIZ");
        for(int i=0 ; i<matriz.length ; i++)
        {
            for(int j=0; j<matriz.length; j++)
            {
                System.out.print("matriz["+i+"]"+"["+j+"] = ");
                matriz[i][j]=en.nextInt();
            }
        }
        
        for(int k=0 ; k<matriz.length ; k++)
        {
            for(int l=0; l<matriz.length; l++)
            {
                if (k==l) 
                {
                    aux = aux + matriz[k][l];
                    System.out.print( ANSI_BLUE_BACKGROUND + ANSI_WHITE + matriz[k][l] + "\t");
                }
                else System.out.print( ANSI_GREEN_BACKGROUND + ANSI_BLUE + matriz[k][l] + "\t");
            }
            System.out.println();
        }
        System.out.println("LA SUMA DE LA DIAGONAL DE LA MATRIZ ES : "+aux);
        
    }
    
}

Resultado

SUMA DE LA DIAGONAL DE UNA MATRIZ CUADRADA 3x3
INGRESE LOS VALORES DE LA MATRIZ
matriz[0][0] = 15
matriz[0][1] = 48
matriz[0][2] = 75
matriz[1][0] = 65
matriz[1][1] = 85
matriz[1][2] = 24
matriz[2][0] = 35
matriz[2][1] = 46
matriz[2][2] = 67
15	48	75	
65	85	24	
35	46	67	
LA SUMA DE LA DIAGONAL DE LA MATRIZ ES : 167

Longitud de un array

Para obtener la longitud de un array podemos usar el método length el cual nos devuelve la longitud del array unidimensional o multidimensional.

notas.length // Longitud de un array unidimensional
notas[2].length // Longitud de elementos de un array en la posición 2 

La clase Arrays

Esta clase estática es muy útil cuando necesitamos obtener o realizar algunas operaciones específicas, esta clase se encuentra en el paquete java.utils.

Existen muchos métodos útiles para nuestros programas, ya que su implementación es muy sencilla, a continuación se detallaran algunas.

Metodo fill

Este método de la clase Arrays nos permite rellenar todo un array o arreglo unidimensional con el valor que deseemos, simplemente debemos indicar el array y el valor que deseamos rellenar en todo el array en los argumentos del metodo fill.

int notas[]=new int[10];
Arrays.fill(notas, 5); //Todos los elementos del array vale 5

También se puede definir desde que índice hasta que índice queremos rellenar y con qué valor

Arrays.fill(notas,0,2,51);//Del elemento 0 al 2 sus valores cambiaran a 51

Método equals

Compara dos arrays (arreglos) y devuelve verdadero (true) si son exactamente iguales es decir deben tener el mismo tipo de dato, tamaño y sus valores deben ser iguales, en caso de no ser así nos devolverá falso (false), este método es muy útil cuando estamos iniciando en la programación de Java y deseamos realizar comparaciones entre arrays (arreglos) de una forma mas sencilla.

Arrays.equals(array1 , array2)

Método sort

Nos da la posibilidad de ordenar nuestro array de forma ascendente

int v[]={4,5,2,3,7,8,2,3,9,5};
Arrays.sort(v);//Estará ordenado
Arrays.sort(v,3,6);//Ordena del tercer al sexto elemento del array

System.arraysCopy

Este método pertenece a la clase System, nos da la posibilidad de copiar un array en otro, este método recibe cinco argumentos.

arraycopy(Object ob, int iniPos, Object destino, int destPos, int tamanio)
  1. src – la matriz fuente.
  2. iniPos – posición inicial en el array fuente.
  3. destino – el array de destino.
  4. destPos – posición inicial en los datos de destino.
  5. tamanio – el número de elementos del array que se copiarán.
int uno[]={1,1,2};
int dos[]={3,3,3,3,3,3,3,3,3};
System.arraycopy(uno, 0, dos, 0, uno.length);
for (int i=0;i<=8;i++){
System.out.print(dos[i]+" ");
} //Sale 112333333

Comentarios

Su dirección de email no sera publicado. Los campos obligatorios están marcados con *.