bloque2:arrays
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| bloque2:arrays [14/12/2018 23:27] – [Lo más importante de los arrays] Fernando Valdeón | bloque2:arrays [16/09/2024 20:53] (actual) – editor externo 127.0.0.1 | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ====== Estructuras de datos: Arrays ====== | ====== Estructuras de datos: Arrays ====== | ||
| - | Un array es una estructura de datos **que almacena una cantidad | + | Un array es una estructura de datos **que almacena una cantidad |
| En Java, **los arrays son objetos** al igual que los tipos String, Scanner y el resto de tipos de datos que veremos a partir de ahora. Los objetos funcionan de forma distinta a los tipos primitivos. | En Java, **los arrays son objetos** al igual que los tipos String, Scanner y el resto de tipos de datos que veremos a partir de ahora. Los objetos funcionan de forma distinta a los tipos primitivos. | ||
| Línea 39: | Línea 39: | ||
| **Una vez que indico el tamaño de un array, dicho tamaño no puede ser modificado. Si quiero tener otro tamaño, debo crear otro array.** | **Una vez que indico el tamaño de un array, dicho tamaño no puede ser modificado. Si quiero tener otro tamaño, debo crear otro array.** | ||
| + | ==== Contenido por defecto de un array ==== | ||
| + | Cuando construimos un array, todas sus celdas se inicializan a un valor por defecto: | ||
| + | * Arrays de tipo primitivo (int, char, boolean double, etc): Todas sus celdas se inicializan a **0**, ó a **false** si es '' | ||
| + | * Arrays de tipo objeto (String, Scanner o cualquier otra clase): Todas sus celdas se inicializan a '' | ||
| + | |||
| + | <code java> | ||
| + | double[] array = new double[4]; -> sus celdas contienen el valor 0.0 | ||
| + | boolean[] array2 = new boolean[3]; -> sus celdas contiene el valor false | ||
| + | |||
| + | String[] array3 = new String[3]; -> sus celdas contiene el valor null | ||
| + | </ | ||
| ===== Acceder al contenido del array ===== | ===== Acceder al contenido del array ===== | ||
| Accedemos a cada posición del array mediante un **índice que comienza en 0** y va hasta la longitud -1 del array. | Accedemos a cada posición del array mediante un **índice que comienza en 0** y va hasta la longitud -1 del array. | ||
| Línea 97: | Línea 108: | ||
| enteros2[0] = 9; | enteros2[0] = 9; | ||
| - | //Tanto enteros1[0] como enteros2[0] guardan el valor int 9 | + | /* |
| - | //System.out.println(enteros1) -> @F456AC y System.out.println(enteros2) -> @F456AC | + | - Tanto enteros1[0] como enteros2[0] guardan el valor int 9 |
| - | //Ambas variables referencian al mismo array | + | - System.out.println(enteros1) -> @F456AC y System.out.println(enteros2) -> @F456AC |
| - | // | + | - Ambas variables referencian al mismo array y desde ambas variables accedo al mismo array |
| + | */ | ||
| </ | </ | ||
| Línea 116: | Línea 128: | ||
| //Recibe un int que indica la cantidad de Strings que pido al usuario | //Recibe un int que indica la cantidad de Strings que pido al usuario | ||
| static String[] pedirCadenas(int cantidad){ | static String[] pedirCadenas(int cantidad){ | ||
| - | | ||
| - | |||
| | | ||
| + | |||
| + | | ||
| + | | ||
| | | ||
| System.out.println(" | System.out.println(" | ||
| Línea 142: | Línea 155: | ||
| ===== Arrays bidimensionales (Matrices) ===== | ===== Arrays bidimensionales (Matrices) ===== | ||
| - | Las matrices son arrays que tienen 2 dimensiones. Se pueden entender | + | Las matrices son arrays que tienen 2 dimensiones. Se pueden entender |
| <code java> | <code java> | ||
| char[][] matrizCaracteres; | char[][] matrizCaracteres; | ||
| - | matrizCaracteres = new char[2][3]; | + | matrizCaracteres = new char[2][3]; |
| int[][] numeros = {{2, 4}, {5, 6}, {-7, -2}}; | int[][] numeros = {{2, 4}, {5, 6}, {-7, -2}}; | ||
| </ | </ | ||
| - | ==== Acceder a las posiciones ==== | + | ==== Acceder a las posiciones |
| Debo utilizar tantos índices como dimensiones tenga el array: | Debo utilizar tantos índices como dimensiones tenga el array: | ||
| <code java> | <code java> | ||
| Línea 164: | Línea 177: | ||
| matriz[1][2] = 9; | matriz[1][2] = 9; | ||
| - | //Leyendo desde teclado | + | //Por lo que uso 2 bucles para recorrerlo (guardando datos) |
| for(int i = 0; i < matriz.length; | for(int i = 0; i < matriz.length; | ||
| - | | + | |
| System.out.println(" | System.out.println(" | ||
| matriz[i][j] = input.nextInt(); | matriz[i][j] = input.nextInt(); | ||
| Línea 172: | Línea 185: | ||
| } | } | ||
| - | //O mediante 2 bucles, | + | //Dos bucles |
| for(int i = 0; i < matriz.length; | for(int i = 0; i < matriz.length; | ||
| - | | + | |
| System.out.print(matriz[i][j] + " "); | System.out.print(matriz[i][j] + " "); | ||
| } | } | ||
| Línea 181: | Línea 194: | ||
| </ | </ | ||
| + | ---- | ||
| + | |||
| + | {{ vimeo> | ||
| + | |||
| + | ---- | ||
| ===== Clase Arrays ===== | ===== Clase Arrays ===== | ||
| - | Los arrays aunque son objetos no se crean a partir de una clase. Sin embargo tenemos una clase que contiene una serie de métodos estáticos que nos ayuda a trabajar con arrays: [[bloque2: | + | Los arrays, aunque son objetos, no se crean a partir de una clase. Sin embargo tenemos una clase que contiene una serie de métodos estáticos que nos ayudan |
| ---- | ---- | ||
| (c) {{date> %Y}} Fernando Valdeón | (c) {{date> %Y}} Fernando Valdeón | ||
bloque2/arrays.1544830028.txt.gz · Última modificación: 16/09/2024 20:53 (editor externo)
