jueves, 2 de abril de 2020

Arrays Unidimensionales

  • Estructura básica
 int[] myArray = new int[];

int two[]=new int[];

int[] three =new int[]{1,2,3}; //array 3 elementos con valores 1,2,3

int[] four={};


El tamaño de los arrays se pone en la inicialiación del mismo:

int[3] prueba; //error de compilación

Lo correcto sería:
int[] prueba = new int[3]; 
int[] prueba = {}; 
int[] prueba2=new int[]{1,2,3}
  • Comparación de Arrays
String[] animales = {"Perro","Gato","Pez"};
String misAnimales = animales;
String otrosAnimales =  {"Perro","Gato","Pez"};

System.out.println(animales == misAnimales); //true
System.out.println(animales.equals(misAnimales)); //true
System.out.println(Arrays.equals(animales,misAnimales)); //true

System.out.println(animales == otrosAnimales ); //false
System.out.println(animales.equals(otrosAnimales )); //false
System.out.println(Arrays.equals(animales,misAnimales)); //true

* Arrays.equals(array1, array2) compara el contenido de los arrays.
* ==  y equals compara dirección de memorias.

Se utiliza la propiedad length para saber el tamaño del arrya.

  • Valores de los arrays 
Pasando el valor en concreto que queremos recuperar (se empieza a contar desde 0):
                                        0         1          2
String[] animales = {"Perro","Gato","Pez"}; 

 System.out.println(animales[0]); //Perro 
 System.out.println(animales[1]); //Gato
 System.out.println(animales[0]); //Pez.

 Mediante un for:

  for(int i=0;i
       System.out.println(animales[i]);                         
   }
Se imprimirá Perro Gato  Pez .

toString:

Arrays.toString(array) se imprime los valores del array entre corchetes y separados por coma:

        System.out.println(Arrays.toString(dos)); [Perro,Gato,Pez]
    
Hay que tener en cuenta que si usamos array.toString lo que se imprimirá es su representación en memoria de este objeto:

                                       System.out.println(dos.toString()); [Ljava.lang.String;@15db9742

Ocurriría lo mismo si hacemos 

                                       System.out.println(dos); [Ljava.lang.String;@15db9742

Se puede modificar los valores de los arrays:

                                                   animales[0]="Caballo";

  • Arrays.sort
 Se utiliza Arrays.sort(array);  para ordenar los elementos del array unidimensional.
  • Arrays.binarySearch
Busca un elemento específico en toda una matriz unidimensional y ordenada,

Arrays.binarySearch(array, valorBuscar);
 
Sí encuentra el valor devuelve el indice de la posición donde se encuentra y si no exisie devuelve la posocion en negativo de donde debería estar el valor.
Si el array no está ordenado devuelve un valor impredecible.