domingo, 4 de septiembre de 2016

Java - Arrays


Java - Arrays


Java proporciona una estructura de datos, la matriz , que almacena una colección de tamaño fijo secuencial de elementos del mismo tipo. Una matriz se utiliza para almacenar una colección de datos, pero a menudo es más útil pensar en una matriz como una colección de variables del mismo tipo.
En lugar de declarar las variables individuales, como Number0, número1, ..., y number99, se declara una variable de matriz tales como números y uso de los números [0], números [1], y, números ... [99] para representar variables individuales.

Declaración de variables de matriz:

Para utilizar una matriz en un programa, debe declarar una variable para hacer referencia a la matriz, y se debe especificar el tipo de matriz de la variable puede hacer referencia. Aquí es la sintaxis para declarar una variable de matriz:
dataType[] arrayRefVar;   // preferred way.

or

dataType arrayRefVar[];  //  works but not preferred way.
Nota: El estilo [] arrayRefVar tipoDatos se prefiere. El estilo tipoDatos arrayRefVar [] proviene del lenguaje C / C ++ y se adoptó en Java para dar cabida a los programadores de C / C ++.

Ejemplo:

Los siguientes fragmentos de código son ejemplos de esta sintaxis:
double[] myList;         // preferred way.

or

double myList[];         //  works but not preferred way.

Creación de matrices:

Puede crear una matriz utilizando el operador new con la siguiente sintaxis:
arrayRefVar = new dataType[arraySize];
La declaración anterior hace dos cosas:
  • Se crea una matriz usando nuevo tipo de datos [arraySize de];
  • Se asigna la referencia de la matriz recién creada a la arrayRefVar variable.
Declarar una variable de matriz, la creación de una matriz, y la asignación de la referencia de la matriz a la variable se pueden combinar en una sola declaración, como se muestra a continuación:
dataType[] arrayRefVar = new dataType[arraySize];
Como alternativa, puede crear matrices de la siguiente manera:
dataType[] arrayRefVar = {value0, value1, ..., valuek};
Los elementos de la matriz se accede a través del índice . Los índices de matriz se basan 0-; es decir, que empiezan desde 0 a arrayRefVar.length-1 .

Ejemplo:

declaración siguiente declara una variable de matriz, miLista, crea una matriz de 10 elementos de tipo doble y asigna su referencia a miLista:
double[] myList = new double[10];
La siguiente imagen representa matriz miLista. Aquí, miLista tiene diez valores dobles y los índices son de 0 a 9.
matriz de Java

Las matrices de procesamiento:

Al procesar elementos de la matriz, que a menudo utilizan ya sea por lazo o bucle foreach porque todos los elementos de una matriz son del mismo tipo y el tamaño de la matriz es conocida.

Ejemplo:

Aquí está un ejemplo completo de mostrar cómo crear, inicializar y el proceso de matrices:
public class TestArray {

   public static void main(String[] args) {
      double[] myList = {1.9, 2.9, 3.4, 3.5};

      // Print all the array elements
      for (int i = 0; i < myList.length; i++) {
         System.out.println(myList[i] + " ");
      }
      // Summing all elements
      double total = 0;
      for (int i = 0; i < myList.length; i++) {
         total += myList[i];
      }
      System.out.println("Total is " + total);
      // Finding the largest element
      double max = myList[0];
      for (int i = 1; i < myList.length; i++) {
         if (myList[i] > max) max = myList[i];
      }
      System.out.println("Max is " + max);
   }
}
Esto produciría el siguiente resultado:
1.9
2.9
3.4
3.5
Total is 11.7
Max is 3.5

Los bucles foreach:

JDK 1.5 introdujo un nuevo ciclo for conocido como bucle foreach o bucle for mejorado, lo que le permite atravesar la gama completa de forma secuencial sin necesidad de utilizar una variable de índice.

Ejemplo:

El código siguiente muestra todos los elementos de la matriz miLista:
public class TestArray {

   public static void main(String[] args) {
      double[] myList = {1.9, 2.9, 3.4, 3.5};

      // Print all the array elements
      for (double element: myList) {
         System.out.println(element);
      }
   }
}
Esto produciría el siguiente resultado:
1.9
2.9
3.4
3.5

Métodos para pasar matrices:

Al igual que puede pasar valores de tipos simples de métodos, también puede pasar matrices a los métodos. Por ejemplo, el método siguiente muestra los elementos de una matriz int:
public static void printArray(int[] array) {
  for (int i = 0; i < array.length; i++) {
    System.out.print(array[i] + " ");
  }
}
Se puede llamar al pasar una matriz. Por ejemplo, la siguiente sentencia invoca el método printArray para mostrar 3, 1, 2, 6, 4 y 2:
printArray(new int[]{3, 1, 2, 6, 4, 2});

Volviendo una matriz de un Método:

Un método puede devolver una matriz. Por ejemplo, el método que se muestra a continuación devuelve una matriz que es la inversión de otra matriz:
public static int[] reverse(int[] list) {
  int[] result = new int[list.length];

  for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {
    result[j] = list[i];
  }
  return result;
}

La clase Arrays:

La clase java.util.Arrays contiene varios métodos estáticos de clasificación y búsqueda de matrices, matrices de comparación, y llenando elementos de la matriz.Estos métodos están sobrecargados para todos los tipos primitivos.
SNLos métodos con Descripción
1public static int busquedaBinaria (Object [] a, Object key)
Busca en la matriz especificada de objetos (Byte, Int, doble, etc.) para el valor especificado usando el algoritmo de búsqueda binaria. La matriz debe ser ordenada antes de hacer esta llamada. Esto devuelve el índice de la clave de búsqueda, si está incluido en la lista; de lo contrario, (- (+ 1 punto de inserción).
2boolean equals estáticos públicos (larga [] a, a largo [] a2)
Devuelve true si las dos matrices especificadas de productos largos son iguales entre sí. Dos matrices se consideran iguales si ambas matrices contienen el mismo número de elementos, y todos los pares correspondientes de los elementos en las dos matrices son iguales. Esto devuelve cierto si los dos arreglos son iguales. Mismo método podría ser utilizado por todos los demás tipos de datos primitivos (byte, short, int, etc.)
3pública relleno del espacio vacío estático (int [] a, int val)
Asigna el valor int especificado a cada elemento de la matriz especificada de enteros. Mismo método podría ser utilizado por todos los demás tipos de datos primitivos (byte, short, int etc.)
4pública tipo static void (Object [] a)
Ordena la matriz especificada de objetos en orden ascendente, de acuerdo con el ordenamiento natural de sus elementos. Mismo método podría ser utilizado por todos los demás tipos de datos primitivos (byte, short, int, etc.)
Autor  : Anónimo
HTML: www.tutorialspoint.com/java/java_arrays.htm (TRADUCIDO A ESPAÑOL)
tutorialspoint

ARRAYLIST DE OBJETOS EN JAVA



ARRAYLIST DE OBJETOS EN JAVA


Ya se habló sobre los ArrayList en java, pero ¿si necesitamos un ArrayList de objetos? Algo más complejo e interesante para hacer, ya que, agregando la especialidad del dinamismo, encontramos que un espacio del ArrayList en java puede contener diferentes tipos de datos en él. Como sabemos la complejidad para este tipo de conceptos es al momento de modificar y eliminar, y no es tanto por lo difícil, sino por el manejo de memoria que hay que tener al momento de las comparaciones. Como se crea un ArrayList de objetos en java 



COMO SE CREA UN ARRAYLIST

  

La sintaxis para crear el ArraList de objetos es la siguiente:   

 

       
        ArrayList  NombreArrayList= new ArrayList  ();
       
 

ClaseDelObjeto => la clase que vamos a emplear para el manejo de los datos del objeto.

NombreArrayList => el nombre del ArrayList que vamos a manipular.


Los anteriores son datos que se reemplazaran con los nombres que deseemos y debamos usar. Para usar esta sintaxis debemos de importar las librerías necesarias para usar el ArrayList:

       
             import java.util.ArrayList;
       
 

Metodos útiles para un Arraylist en java 

Para realizar las operaciones comunes tales como ingresar, eliminar, buscar, modificar datos en un Arraylist encontraremos algunos métodos útiles para tal objetivo:
  • add(X) -> Añade un valor u objeto al final del ArrayList. 
  • size() -> Retorna el tamaño del ArrayList. 
  • contains(X) -> Retorna true si existe el elemento X en el ArrayList. 
  • set(i, X) -> Modifica el elemento que esta en la posición i, por el nuevo elemento X.
  •  remove(X) -> Elimina el elemento X o en su defecto el elemento en la posición X.
  •  get(i) -> Obtiene el elemento en la posición i del Array List.