MATRICES (ARRAYS O ARREGLOS)
Una
matriz es una estructura de datos que nos permite almacenar una gran cantidad
de valores del mismo tipo. El tamaño que va a tener el array lo determinaremos
en el inicio.
SINTAXIS
Int
|
[]
nombre_array=new
|
Int
|
[número
valores almacenados]
|
Long
|
Long
|
||
Short
|
short
|
||
Doublé
|
double
|
Ejmplo. Declaramos una
matriz de elementos que sean números enteros.
3
|
6
|
8
|
10
|
20
|
Posición
0
|
Posición
1
|
Posición
2
|
Posición
3
|
Posición
5
|
La declaramos:
Int[] array = new int [5];
Ahora la iniciaremos
(cargar los datos). Siempre la iniciaremos desde 0, por lo que un array de 5
posiones irá del 0 la 4.
Array [0]= 3;
Array [1]= 6;
Array [2]= 8;
Array [3]= 10;
Array [4]= 20;
También la podríamos declarar en línea.
Int[] array = {3,8,10,20};
ejmplo2.
Utilizaremos un bucle for para llenar un array.
import javax.swing.JOptionPane;
public class Practica18_Bucles_determinados_for4_arrays {
public static void main(String[] args) {
int[] valor = new int[5];
for (int i=0;i<5;i++ ) {
valor[i]=Integer.parseInt(JOptionPane.showInputDialog("dime tu numero rey "));
}
for (int j =0;j<5;j++) {
System.out.println( valor[j]);
}
}
}
ejmplo2.
Utilizaremos un bucle for para llenar un array.
import javax.swing.JOptionPane;
public class Practica18_Bucles_determinados_for4_arrays {
public static void main(String[] args) {
int[] valor = new int[5];
for (int i=0;i<5;i++ ) {
valor[i]=Integer.parseInt(JOptionPane.showInputDialog("dime tu numero rey "));
}
for (int j =0;j<5;j++) {
System.out.println( valor[j]);
}
}
}
Ejemplo3:
Existe una propiedad del
objeto array lenght que nos indica
la longitud de una matriz y nos resulta muy útil para recorrer un array.
public class Practica19_Bucles_determinados_for5_arrays_length
public static void main(String[] args) {
int[]array= {10,20,30,50,60,-658,1,2,3,4,5,6,-1,-2,-3,-4,-5,-6,-7,-8,-9};
for (int i=0; i<array.length ;i++) {
System.out.println("en posició "+i+" esta el numero "+array[i]);
}
}
}
Ejemplo3:
Ejemplo3:
Con el método parallelSort() podemos ordenar lo datos almacenados
dentro de un array de menor a mayor.
Ejm.
import java.util.Arrays;
int xxx[]=
{50,89,250,1,89,300,900,6};
Arrays.parallelSort(xxx);
for (int i:xxx) {
System.out.println(i);
CONSOLE:
1
6
50
89
89
250
300
900
BUCLE FOR EACH
Es un método más tapido para recorrer un bucle.
SINTAXIS
For (
|
String
|
Variable : variable a recorrer){código…}
|
Int
|
||
long
|
Ejmplo 1:
public class Practica20_Bucles_determinado_ForEach {
public static void main(String[] args) {
String []dias_semana=new String[7];
int contador =0;
for (int i=0;i<dias_semana.length;i++) { dias_semana[i]
=JOptionPane.showInputDialog("dime el
dia "+ (i+1));
}
for (String j:dias_semana) {
contador++;
System.out.println(" el dia de la
semana "+contador + " es "+j);
}
MATRICES BIDIMENSIONALES
Para conseguir un array en dos dimensiones introduciremos un
array dentro de otro. Para encontrar una semejanza pensemos en una tabla.
0,0
|
1,0
|
2.0
|
3.0
|
0.1
|
1.1
|
2.1
|
3.1
|
0.2
|
1.2
|
2.2
|
3.2
|
Este array lo declarariamos de la siguiente manera:
Int [ ] array =
new int [numero columnas][numero filas];
Int [ ] array =
new int [4][3];
Otra forma es hacerlo in line:
Int [ ] []array = { {10,5,63,90,2,3} , {1,93,58,20,58} {10,15,20,30,40,50,60} , {1,2,3,4,5,6,7,8}};
Ejmplo 1:
En el siguiente ejercicio crearemos un array en dos
dimensiones que rellenaremos con números aleatorios e imprimiremos en la
ventana de inmediato. Para poderlo realizar necesitaremos crear un bucle for
anidado (un for dentro de otro).
public class Practica21_Matrices_Bidimensionales {
public static void main(String[] args) {
int[][] array=new int [4][5];
for (int i =0; i<4;i++) {
for (int j=0;j<5;j++) {
array[i][j]= (int)(Math.round((Math.random()*100)));
System.out.println("En la posición( "+ i +"
, "+j+ ") : " + array[i][j]);
}
System.out.print("\n");
}
}
}
Ejemplo2:
En este caso crearemos registro de forma
aleatoria (Math.random) y los imprimiremos en la venta de inmediato, pero en
esta ocasión utilizaremos un bucle for each.
public class Practica23_Matrices_Bidimensionales_forEach
{
public static void main(String[] args) {
int matriz [][]=new int [5][10];
for (int [] TodaLAmatriz:matriz) {
System.out.println("");
for (int posicion_actual:TodaLAmatriz) {
posicion_actual =(int)Math.round((Math.random()*100));
System.out.print(posicion_actual +" "); }
}
}
}
ORDENAR UN ARRAY
Con el método parallelSort () podemos ordenar los datos almacenados dentro de un array de menor a mayor.
Ejm.
import java.util.Arrays;
int xxx[]= {50,
89, 250, 1, 89, 300, 900, 6};
//Utilizamos
el método parallelSort de la clase arrays para ordenar el array
Arrays.parallelSort(xxx);
//utilizamos
un bucle For each para imprimirlo en consola
for (int i:xxx) {
System.out.println (i);
ArrayList y LinkedList
ArrayList como LinkedList implementan la interfaz List y se encuentran en el paquete java.util.
La principal diferencia es un tema de implementación ArrayList implementa la lista con arreglos linkeados, lo que la hace muy eficiente para recorrer pero ineficiente para insertar o eliminar elementos que se no encuentren en el final. En cambio LinkedList es una lista de elementos linkeados (en realidad es una lista doblemente enlazada) lo que la hace lenta para recorrer pero sumamente eficiente para insertar o eliminar elementos. Esta es la principal diferencia y hay que recordarla siempre.
Por lo tanto ArrayList :
• usa internamente un arreglo dinámico para almacenar los elementos.
• proporciona una manipulación lenta
• es la mejor opción para almacenar y acceder a datos o elementos consecutivos.
Por lo tanto LinkedList:
• proporciona una manipulación más rápida porque utiliza una lista doblemente enlazada.
• se puede utilizar como lista y cola porque implementa interfaz de List, Deque y Queue.
• es mejor para manipulación de elementos, es decir, para insertar y eliminar elementos.
Por lo tanto si necesitamos agregar elementos consecutivos y recorrerlos debemos utilizar ArrayList y si en cambio necesitamos insertar y eliminar valores no consecutivos debemos usar LinkedList.
Ejmplo ArrayList:
package mis_frames;
import java.util.*;
public class array {
public static void main(String[] args) {
List<String>
i = new ArrayList<String>();
i.add("z");
i.add("x");
i.add("a");
i.add("b");
Iterator<String>
x = i.iterator();
while(x.hasNext()) {
System.out.println(x.next());
}
}
}
Ejmplo LinkedList
ackage mis_frames;
import java.util.*;
public class array {
public static void main(String[] args) {
List<String> i = new LinkedList<String>();
i.add("z");
i.add("x");
i.add("a");
i.add("b");
Iterator<String> x = i.iterator();
while(x.hasNext()) {
System.out.println(x.next());
}
}
}
No hay comentarios:
Publicar un comentario