Uno de los problemas mas comunes en los diversos sistemas de información, es el tratamiento o procesamiento de una gran volumen de datos o de información.
Variables, objetos y componentes visuales manejados hasta ahora, no pueden ayudar a resolver este problema.
Las variables,objetos y componentes visuales usados hasta ahora reciben propiamente el nombre de escalares, porque solo permiten almacenar o procesar un dato a la vez.
Por ejemplo si se quiere almacenar nombre y edad de 15 personas, con el método tradicional se ocuparan 30 variables o 30 componentes visuales y esto solo es nombre y edad de 15 personas, agreguen mas datos y mas personas y ya es tiempo de empezar a analizar otro tipo de variables, objetos y componentes.
Es decir, en problemas que exigen manejar mucha información o datos a la vez, variables escalares, objetos y componentes visuales de manipulación de datos normales, no son suficientes ya que su principal problema es que solo permiten almacenas un dato a la vez.
Se ocupa entonces variables, objetos y componentes visuales que sean capaces de almacenar y manipular conjuntos de datos a la vez.
Variables de tipo
arreglo y sus correspondientes objetos y componentes visuales, si permiten almacenar y procesar conjuntos de datos
del mismo tipo a la vez.
Cada dato dentro del arreglo se le llama elemento del arreglo y se simboliza y procesa (captura, operación, despliegue ), usando el nombre del arreglo respectivo y un subíndice indicando la posición relativa del elemento con respecto a los demás elementos del arreglo, solo recordar que en JAVA la primera posición, elemento o renglón es la 0 (cero), ej.
NOMBRES
Juan
Pedro → Nombres[1]
José
Ana → Nombres[3]
Carmen
EDAD
18 → Edad[0]
20
25
30 → Edad[3]
Sin embargo sus problemas son similares a los de variables normales, es decir hay que declararlos, capturarlos, hacer operaciones con ellos, desplegarlos, compararlos, etc.
Arrays:
Un arreglo (array) es una colección de datos del mismo tipo, que se almacenan en posiciones consecutivas de memoria y reciben un nombre común. Para referirse a un determinado elemento de un array se deberá utilizar un índice, que especifique su posición relativa en el array. Un arreglo es una colección finita, homogénea y ordenada de elementos. Finita:Todo arreglo tiene un límite; es decir,debe determinarse cuál será el número máximo de elementos que podrán formar parte del arreglo. Homogénea: Todos los elementos del arreglo deben ser del mismo tipo. Ordenada: Se puede determinar cuál es el primer elemento, el segundo, el tercero,.... y el n-ésimo elmento.
Los arreglos se clasifican de acuerdo con el número de dimensiones que tienen. Así se tienen los:
- Unidimensionales (vectores)
- Bidimensionales (tablas o matrices)
- Multidimensionales (tres o más dimensiones)
Ejemplo:
import
javax.swing.*;
public
class
InicArreglo {
public
static
void
main( String args[] )
{
int
arreglo[];
arreglo =
new
int
[
10
];
String salida =
"Índice\tValor\n"
;
for
(
int
contador =
0
; contador < arreglo.length; contador++ )
salida += contador +
"\t"
+ arreglo[ contador ] +
"\n"
;
JTextArea areaSalida =
new
JTextArea();
areaSalida.setText( salida );
JOptionPane.showMessageDialog(
null
, areaSalida,
"Inicialización de un arreglo de valores int"
,
JOptionPane.INFORMATION_MESSAGE );
System.exit(
0
);
}
}
Matrices.
Las matrices se definen, como un arreglo bidimensional, en donde tenemos un número de reglones N y un número de columnas M. La representación matemática de una matriz es :
a11 | a12 | ... | a1M |
a21 | a22 | ... | a2M |
... | ... | ... | ... |
aN1 | aN2 | ... | aNM |
Para hacer la definición en Java de este arreglo hacemos
double A[][] = new double [N][M];
donde A es el nombre del arreglo N el número de renglones y M el número de columnas.
Para hacer referencia al elemento en el i-esimo renglón y la j-esima columna hacemos A[i][j].
Otra forma de hacer la definición de un arreglo es mediante la siguiente instrucción
double a[][] = {{1,2,3}, {4,5,6}, {7,8,9}};
esta instrucción crea un arreglo de 3 renglones con 3 columnas y los elementos lo dispone de la siguiente manera
EJEMPLO:
/**
* Este es un ejemplo de creación de un array en este caso de dos dimensiones
*/
package ejemplos;
public class matrices {
public static void main( String args[] ) {
// Declaramos un array de dos dimensiones con un tamaño de 3 en la
// Decladramos el array con un tamano de 3 en su primera dimensión para
// posteriormente declarar la segunda dimensión.
int matriz[][] = new int[3][];
matriz[0] = new int[2];
matriz[1] = new int[3];
matriz[2] = new int[4];
// Ponemos datos en el array
for ( int i=0; i < 3; i++ ) {
for ( int j=0; j < matriz[i].length; j++ )
matriz[i][j] = i * j;
}
// y vemos su contenido, utilizando un bucle for
for ( int i=0; i < 3; i++ ) {
for ( int j=0; j < matriz[i].length; j++ )
System.out.print( matriz[i][j] );
System.out.println();
}
// Intetamos acceder a un elemento que esta fuera de los limites del array
System.out.println( "Elemento fuera de limites del array" );
matriz[4][0] = 7;
// El compilador lanzara una excepción de tipo ArrayIndexOutOfBounds
}
}