SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
Representación de Datos y Aplicaciones
                            Representació




                                          Tema 8
                                          Arrays


                                     Natividad Martínez Madrid
                                               Martí
                                          nati@it.uc3m.es




                               Objetivos del tema 8

● Ser capaz de diseñar, dimensionar y acceder de
  forma adecuada a un array
● Aprender a utilizar de forma adecuada las
  estructuras estáticas de datos en conjunción con
  las estructuras de control de flujo de programa




Tema 8: Arrays
Representación de Datos y Aplicaciones      © Natividad Martínez Madrid   2




                                                                              1
Contenido del tema 8
●       Conceptos básicos de arrays
       ―       Utilidad de las estructuras de almacenamiento masivo de datos
       ―       Declaración de arrays
       ―       Creación de arrays
       ―       Inicialización de arrays
       ―       Acceso y comprobaciones sobre arrays
       ―       Copia de arrays
       ―       Arrays multidimensionales
●       Uso de arrays
       ― Cálculos aritméticos sobre matrices
       ― Algoritmos de búsqueda
       ― Algoritmos de ordenación

Tema 8: Arrays
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid           3




                                         Arrays

Definición:
● Un array es una secuencia de objetos o de datos
  primitivos, todos del mismo tipo, unidos bajo un
  identificador común
● Permiten agrupar información relacionada
● Son de tipo referencia
● Sinónimos:
       ― Tabla
       ― Matriz

Tema 8: Arrays
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid           4




                                                                                   2
Arrays
● Cada objeto o dato del array está asignado a un posición
  concreta del array, designada por un índice
Índice 1er elemento = 0 c[0] -7
                        c[1] 0
                        c[2] 3
                        c[3] 8
                        c[4] 5
                                                                 Longitud del array = 10
                        c[5] -4
                        c[6] 6
                        c[7] 6
                        c[8] 1                                  Índice n-ésimo elemento = n - 1
 Índice último elemento
  = longitud - 1        c[9] 2
                                         Índice: expresión entera: 0 <= índice <= longitud-1
Tema 8: Arrays
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid                         5




                            Declaración de arrays

● Se indica el tipo de los elementos contenidos por
  el array, seguido por [] y seguido por el nombre
  identificador del array
       ― los [] también pueden ir detrás del nombre

       int[] enteros;
       int enteros[];                                        Los elementos pueden ser
       Punto[] puntos;                                         de tipo primitivo o de
                                                                  tipo referencia
       Punto puntos[];



Tema 8: Arrays
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid                         6




                                                                                                  3
Uso de la memoria en
                                 declaración de arrays
                                                       Memoria de pila         Memoria de heap

int[] enteros;
                                                       enteros          null




Punto[] puntos;                                         puntos      null


                    class Punto {
                      int x;
                      int y;
                      Punto (int x, int y){
                        this.x = x;
                        this.y = y;
                      }
                    }

Tema 8: Arrays
Representación de Datos y Aplicaciones    © Natividad Martínez Madrid                            7




                                 Creación de arrays
● Usando new, seguido del nombre del tipo de los
  elementos del array, seguido por el tamaño del
  array (entre corchetes)

        nombreArray = new tipo[tamaño];

        enteros = new int[3];
        puntos = new Punto[2];




Tema 8: Arrays
Representación de Datos y Aplicaciones    © Natividad Martínez Madrid                            8




                                                                                                     4
Creación de arrays

● El tamaño del array tiene que indicarse en el
  momento de su creación, y no puede cambiarse
  después
● Los elementos se inicializan a cero, false o
  null en el momento de su creación
● Igual que sucede con el resto de objetos, se
  puede declarar el array y crearlo en la misma
  sentencia:
       int[] enteros = new int[3];


Tema 8: Arrays
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid   9




                                 Creación de arrays

● Durante la creación del array
       ― Se reserva memoria para el atributo length
       ― Se reserva memoria para guardar la cantidad de
         elementos indicada
       ― Se asigna la dirección de esa área de memoria a la
         referencia del array
● Arrays de tipos primitivos
       ― Espacio para guardar los valores concretos, ya que el
         tamaño de los tipos primitivos es conocido a priori
● Arrays de objetos
       ― Espacio para guardar las referencias a los objetos
Tema 8: Arrays
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid   10




                                                                            5
Uso de la memoria en
                               la creación de un array
                                                      Memoria de pila   Memoria de heap

enteros = new int[3];
                                                      enteros
                                                                            length     3
                                                                         enteros[0]    0
                                                                         enteros[1]    0
                                                                         enteros[2]    0




puntos = new Punto[2];                                 puntos
                                                                             length    2
                                                                          puntos[0]   null
                                                                          puntos[1]   null

            ¡Cuidado! No es
             una llamada al
              constructor

Tema 8: Arrays
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid                         11




                          Inicialización de arrays

● Según el tipo de los elementos:
       ― Variables de tipos primitivos:
       enteros[0] = 7;

       ― Objetos de clases
       puntos[0] = new Punto(1,2);




Tema 8: Arrays
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid                         12




                                                                                                  6
Uso de la memoria en
                        la inicialización de un array
                                                      Memoria de pila   Memoria de heap


enteros[0] = 7;                                       enteros
                                                                            length     3
                                                                         enteros[0]    7
                                                                         enteros[1]    0
                                                                         enteros[2]    0



puntos[0] = new Punto(1,2);                            puntos
                                                                             length    2
                                                                          puntos[0]
                                                                          puntos[1]   null


                                                                                  x    1
                                                                                  y    2


Tema 8: Arrays
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid                         13




         Ejemplo: Inicialización de arrays

                  public class Factorial {

                     private int[] fact;

                 public Factorial(int dimension) {
                    fact = new int[dimension];
                    fact[0] = 1;
                    for (int i = 1; i < fact.length; i++)
                       fact[i] = fact[i-1] * i;
                }
              [...]
             }




Tema 8: Arrays
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid                         14




                                                                                                  7
Otra inicialización de arrays

● De manera explícita en el momento de su
  declaración:
       int[] arrayEntero = {1,2,3,4,5};
       String[] diasSemana = {“lunes”, “martes”,
                  “miercoles”, “jueves”, “viernes”,
                  “sabado”,“domingo”};
       Punto[] puntos = {new Punto(1,2), new Punto(3,4);

● Determina el tamaño del array
● Sólo en el momento de la declaración



Tema 8: Arrays
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid   15




                                Acceso a los arrays

Dos formas de acceder a su información:
1. Consulta de su longitud
       ● Atributo de tipo entero positivo (de sólo lectura)
         length que proporciona el tamaño del array
       nombreArray.length
2. Indexación
       ● Acceso a los elementos del array a través de su
         índice
       ● El índice siempre tiene un rango entre 0 y N-1 siendo
         N el tamaño del array
       nombreArray[i]
Tema 8: Arrays
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid   16




                                                                            8
Ejemplo: Acceso arrays
● Crea un array con los enteros del 1 al argumento
  introducido, e imprime la suma de los elementos
                public class Serie {
                   public static void main (String[] args){
                     int tamanyo = Integer.parseInt(args[0]);
                     int[] a1 = new int[tamanyo];
                     int suma = 0;
                     for (int i = 0; i < a1.length; i++) {
                        a1[i] = i + 1;
                        suma += a1[i];
                            }
                            System.out.println("La suma es: " + suma);
                       }
             }

Tema 8: Arrays
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid   17




                         Ejemplo: Acceso arrays
     public class Serie2 {

            private int[] a1;
            private int suma;

                public Serie2(int tamanyo){
                  a1 = new int[tamanyo];
                  suma = 0;
                  for (int i = 0; i < a1.length; i++) {
                     a1[i] = i + 1;
                     suma += a1[i];
                  }
            }

                public static void main (String[] args){
                  int tamanyo = Integer.parseInt(args[0]);
                  Serie2 rec = new Serie2(tamanyo);
                  System.out.println("La suma es: " + rec.suma);
            }
      }

Tema 8: Arrays
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid   18




                                                                            9
Copia de arrays

● La asignación del valor de una variable de
  array a otra sólo copiará la referencia
     Punto[] puntos2 = puntos;




Tema 8: Arrays
Representación de Datos y Aplicaciones       © Natividad Martínez Madrid                         19




                            Uso de la memoria en
                        la inicialización de un array
                                                          Memoria de pila   Memoria de heap


 Punto[] puntos2 = puntos;                                puntos2




                                                           puntos
                                                                                 length    2
                                                                              puntos[0]
                                                                              puntos[1]   null


                                                                                     x     1
                                                                                     y     2


Tema 8: Arrays
Representación de Datos y Aplicaciones       © Natividad Martínez Madrid                         20




                                                                                                      10
Ejemplo: Copia arrays
                  public class Arrays {
                      public static void main (String[] args){
                        int[] a1 = {1,2,3,4,5};
                        int[] a2;
                        a2 = a1;
                        for (int i = 0; i < a2.length; i++)
                           a2[i]++;
                        for (int i = 0; i < a1.length; i++)
                           System.out.println("a1[" + i + "] = "
                                              + a1[i]);
                    }
              }
● ¿Qué imprime este programa?




Tema 8: Arrays
Representación de Datos y Aplicaciones       © Natividad Martínez Madrid   21




                                         Copia de arrays
● Se puede utilizar un bucle:
         public class EjemploCopia {
          public static int[] copia (int[] x1){
              int[] x2 = new int[x1.length];
              for (int i = 0; i < x1.length; i++)
                 x2[i] = x1[i];
              return x2;
           }
           public static void main (String[] args){
              int[] a1 = {1,2,3,4,5};
              int[] a2 = copia(a1);
              for (int i = 0; i < a2.length; i++)
                 a2[i]++;
              for (int i = 0; i < a1.length; i++)
                 System.out.println("a1[" + i + "] = " + a1[i]
                                + "; a2[" + i + "] = " + a2[i]);

          }
     }

Tema 8: Arrays
Representación de Datos y Aplicaciones       © Natividad Martínez Madrid   22




                                                                                11

Mais conteúdo relacionado

Mais procurados

Arrays, arreglos o vectores en c++
Arrays, arreglos o vectores en c++Arrays, arreglos o vectores en c++
Arrays, arreglos o vectores en c++Tensor
 
Vectores, array y sus métodos
Vectores, array y sus métodosVectores, array y sus métodos
Vectores, array y sus métodosOrlando Verdugo
 
Arrays - programación 3
Arrays - programación 3Arrays - programación 3
Arrays - programación 3yeimirbeth
 
Punteros y elementos dinámicos en c++
Punteros y elementos dinámicos en c++Punteros y elementos dinámicos en c++
Punteros y elementos dinámicos en c++Tensor
 

Mais procurados (7)

Arreglos
ArreglosArreglos
Arreglos
 
Arrays, arreglos o vectores en c++
Arrays, arreglos o vectores en c++Arrays, arreglos o vectores en c++
Arrays, arreglos o vectores en c++
 
Vectores, array y sus métodos
Vectores, array y sus métodosVectores, array y sus métodos
Vectores, array y sus métodos
 
Cap06
Cap06Cap06
Cap06
 
Arrays - programación 3
Arrays - programación 3Arrays - programación 3
Arrays - programación 3
 
12-Unidad 3: Encapsulamiento y modularidad
12-Unidad 3: Encapsulamiento y modularidad12-Unidad 3: Encapsulamiento y modularidad
12-Unidad 3: Encapsulamiento y modularidad
 
Punteros y elementos dinámicos en c++
Punteros y elementos dinámicos en c++Punteros y elementos dinámicos en c++
Punteros y elementos dinámicos en c++
 

Destaque

Travel: Texel, ACCESS Magazine Spring 2011
Travel: Texel, ACCESS Magazine Spring 2011Travel: Texel, ACCESS Magazine Spring 2011
Travel: Texel, ACCESS Magazine Spring 2011cleung
 
2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdf2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdfkd19h
 
Telšių rajono savivaldybės mero V. Kleivos 2013 m. veiklos ataskaita
Telšių rajono savivaldybės mero V. Kleivos 2013 m. veiklos ataskaitaTelšių rajono savivaldybės mero V. Kleivos 2013 m. veiklos ataskaita
Telšių rajono savivaldybės mero V. Kleivos 2013 m. veiklos ataskaitaJurgita Telšiai
 
Un día en el cole
Un día en el coleUn día en el cole
Un día en el coleluisiglesias
 

Destaque (8)

Dokumentų rinkinys: UAB "Vilniaus energija" akcijų perleidimas SVD22
Dokumentų rinkinys: UAB "Vilniaus energija" akcijų perleidimas SVD22Dokumentų rinkinys: UAB "Vilniaus energija" akcijų perleidimas SVD22
Dokumentų rinkinys: UAB "Vilniaus energija" akcijų perleidimas SVD22
 
The place we live in
The place we live inThe place we live in
The place we live in
 
Travel: Texel, ACCESS Magazine Spring 2011
Travel: Texel, ACCESS Magazine Spring 2011Travel: Texel, ACCESS Magazine Spring 2011
Travel: Texel, ACCESS Magazine Spring 2011
 
Hadees Part3
Hadees Part3Hadees Part3
Hadees Part3
 
pallaso
pallasopallaso
pallaso
 
2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdf2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdf
 
Telšių rajono savivaldybės mero V. Kleivos 2013 m. veiklos ataskaita
Telšių rajono savivaldybės mero V. Kleivos 2013 m. veiklos ataskaitaTelšių rajono savivaldybės mero V. Kleivos 2013 m. veiklos ataskaita
Telšių rajono savivaldybės mero V. Kleivos 2013 m. veiklos ataskaita
 
Un día en el cole
Un día en el coleUn día en el cole
Un día en el cole
 

Semelhante a 5 (20)

array
arrayarray
array
 
Algoritmos y Estructura de datos_Semana5 (3).ppt
Algoritmos y Estructura de datos_Semana5 (3).pptAlgoritmos y Estructura de datos_Semana5 (3).ppt
Algoritmos y Estructura de datos_Semana5 (3).ppt
 
OBJETIVO 5 VECTORES que se utilizan en la programacion.pptx
OBJETIVO 5 VECTORES que se utilizan en la programacion.pptxOBJETIVO 5 VECTORES que se utilizan en la programacion.pptx
OBJETIVO 5 VECTORES que se utilizan en la programacion.pptx
 
Arreglos java
Arreglos javaArreglos java
Arreglos java
 
Arreglos (unimensionles y matrices (bidimensionales)
Arreglos (unimensionles y matrices (bidimensionales)Arreglos (unimensionles y matrices (bidimensionales)
Arreglos (unimensionles y matrices (bidimensionales)
 
Tema 5 - Estructuras de datos.pdf
Tema 5 - Estructuras de datos.pdfTema 5 - Estructuras de datos.pdf
Tema 5 - Estructuras de datos.pdf
 
Arrays multidimensionales pdf
Arrays multidimensionales pdfArrays multidimensionales pdf
Arrays multidimensionales pdf
 
Unidad5 estructuras basicas de datos en lenguaje java
Unidad5 estructuras basicas de datos en lenguaje javaUnidad5 estructuras basicas de datos en lenguaje java
Unidad5 estructuras basicas de datos en lenguaje java
 
12 Arreglos
12 Arreglos12 Arreglos
12 Arreglos
 
material_2020A1_COM110_01_137084.pptx
material_2020A1_COM110_01_137084.pptxmaterial_2020A1_COM110_01_137084.pptx
material_2020A1_COM110_01_137084.pptx
 
PPT.pdf
PPT.pdfPPT.pdf
PPT.pdf
 
arreglos.pdf
arreglos.pdfarreglos.pdf
arreglos.pdf
 
Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10
 
Arrays
ArraysArrays
Arrays
 
Arrays
ArraysArrays
Arrays
 
Arrays
ArraysArrays
Arrays
 
Arrays
ArraysArrays
Arrays
 
Guia8 programacion
Guia8 programacionGuia8 programacion
Guia8 programacion
 
Matriz y vectores bidimencionales
Matriz y vectores bidimencionales Matriz y vectores bidimencionales
Matriz y vectores bidimencionales
 
Tema6.pdf
Tema6.pdfTema6.pdf
Tema6.pdf
 

Mais de Whaleejaa Wha (20)

Windows 7
Windows 7Windows 7
Windows 7
 
Windows 7 avanzado
Windows 7 avanzadoWindows 7 avanzado
Windows 7 avanzado
 
Virtualizacion con vm ware
Virtualizacion con vm wareVirtualizacion con vm ware
Virtualizacion con vm ware
 
Unity
UnityUnity
Unity
 
Ubuntu
UbuntuUbuntu
Ubuntu
 
Tecnico windows
Tecnico windowsTecnico windows
Tecnico windows
 
Tecnico hardware desde cero
Tecnico hardware desde ceroTecnico hardware desde cero
Tecnico hardware desde cero
 
Soluciones pc desde cero
Soluciones pc desde ceroSoluciones pc desde cero
Soluciones pc desde cero
 
Silverlight
SilverlightSilverlight
Silverlight
 
Servicio tecnico notebooks
Servicio tecnico notebooksServicio tecnico notebooks
Servicio tecnico notebooks
 
Seguridad pc desde cero
Seguridad pc desde ceroSeguridad pc desde cero
Seguridad pc desde cero
 
Seguridad informatica
Seguridad informaticaSeguridad informatica
Seguridad informatica
 
Routers y switches cisco
Routers y switches ciscoRouters y switches cisco
Routers y switches cisco
 
Robotica
RoboticaRobotica
Robotica
 
Redes wireless
Redes wirelessRedes wireless
Redes wireless
 
Redes wifi
Redes wifiRedes wifi
Redes wifi
 
Proteus vsm
Proteus vsmProteus vsm
Proteus vsm
 
Produccion musical
Produccion musicalProduccion musical
Produccion musical
 
Php avanzado
Php avanzadoPhp avanzado
Php avanzado
 
Overclocking
OverclockingOverclocking
Overclocking
 

5

  • 1. Representación de Datos y Aplicaciones Representació Tema 8 Arrays Natividad Martínez Madrid Martí nati@it.uc3m.es Objetivos del tema 8 ● Ser capaz de diseñar, dimensionar y acceder de forma adecuada a un array ● Aprender a utilizar de forma adecuada las estructuras estáticas de datos en conjunción con las estructuras de control de flujo de programa Tema 8: Arrays Representación de Datos y Aplicaciones © Natividad Martínez Madrid 2 1
  • 2. Contenido del tema 8 ● Conceptos básicos de arrays ― Utilidad de las estructuras de almacenamiento masivo de datos ― Declaración de arrays ― Creación de arrays ― Inicialización de arrays ― Acceso y comprobaciones sobre arrays ― Copia de arrays ― Arrays multidimensionales ● Uso de arrays ― Cálculos aritméticos sobre matrices ― Algoritmos de búsqueda ― Algoritmos de ordenación Tema 8: Arrays Representación de Datos y Aplicaciones © Natividad Martínez Madrid 3 Arrays Definición: ● Un array es una secuencia de objetos o de datos primitivos, todos del mismo tipo, unidos bajo un identificador común ● Permiten agrupar información relacionada ● Son de tipo referencia ● Sinónimos: ― Tabla ― Matriz Tema 8: Arrays Representación de Datos y Aplicaciones © Natividad Martínez Madrid 4 2
  • 3. Arrays ● Cada objeto o dato del array está asignado a un posición concreta del array, designada por un índice Índice 1er elemento = 0 c[0] -7 c[1] 0 c[2] 3 c[3] 8 c[4] 5 Longitud del array = 10 c[5] -4 c[6] 6 c[7] 6 c[8] 1 Índice n-ésimo elemento = n - 1 Índice último elemento = longitud - 1 c[9] 2 Índice: expresión entera: 0 <= índice <= longitud-1 Tema 8: Arrays Representación de Datos y Aplicaciones © Natividad Martínez Madrid 5 Declaración de arrays ● Se indica el tipo de los elementos contenidos por el array, seguido por [] y seguido por el nombre identificador del array ― los [] también pueden ir detrás del nombre int[] enteros; int enteros[]; Los elementos pueden ser Punto[] puntos; de tipo primitivo o de tipo referencia Punto puntos[]; Tema 8: Arrays Representación de Datos y Aplicaciones © Natividad Martínez Madrid 6 3
  • 4. Uso de la memoria en declaración de arrays Memoria de pila Memoria de heap int[] enteros; enteros null Punto[] puntos; puntos null class Punto { int x; int y; Punto (int x, int y){ this.x = x; this.y = y; } } Tema 8: Arrays Representación de Datos y Aplicaciones © Natividad Martínez Madrid 7 Creación de arrays ● Usando new, seguido del nombre del tipo de los elementos del array, seguido por el tamaño del array (entre corchetes) nombreArray = new tipo[tamaño]; enteros = new int[3]; puntos = new Punto[2]; Tema 8: Arrays Representación de Datos y Aplicaciones © Natividad Martínez Madrid 8 4
  • 5. Creación de arrays ● El tamaño del array tiene que indicarse en el momento de su creación, y no puede cambiarse después ● Los elementos se inicializan a cero, false o null en el momento de su creación ● Igual que sucede con el resto de objetos, se puede declarar el array y crearlo en la misma sentencia: int[] enteros = new int[3]; Tema 8: Arrays Representación de Datos y Aplicaciones © Natividad Martínez Madrid 9 Creación de arrays ● Durante la creación del array ― Se reserva memoria para el atributo length ― Se reserva memoria para guardar la cantidad de elementos indicada ― Se asigna la dirección de esa área de memoria a la referencia del array ● Arrays de tipos primitivos ― Espacio para guardar los valores concretos, ya que el tamaño de los tipos primitivos es conocido a priori ● Arrays de objetos ― Espacio para guardar las referencias a los objetos Tema 8: Arrays Representación de Datos y Aplicaciones © Natividad Martínez Madrid 10 5
  • 6. Uso de la memoria en la creación de un array Memoria de pila Memoria de heap enteros = new int[3]; enteros length 3 enteros[0] 0 enteros[1] 0 enteros[2] 0 puntos = new Punto[2]; puntos length 2 puntos[0] null puntos[1] null ¡Cuidado! No es una llamada al constructor Tema 8: Arrays Representación de Datos y Aplicaciones © Natividad Martínez Madrid 11 Inicialización de arrays ● Según el tipo de los elementos: ― Variables de tipos primitivos: enteros[0] = 7; ― Objetos de clases puntos[0] = new Punto(1,2); Tema 8: Arrays Representación de Datos y Aplicaciones © Natividad Martínez Madrid 12 6
  • 7. Uso de la memoria en la inicialización de un array Memoria de pila Memoria de heap enteros[0] = 7; enteros length 3 enteros[0] 7 enteros[1] 0 enteros[2] 0 puntos[0] = new Punto(1,2); puntos length 2 puntos[0] puntos[1] null x 1 y 2 Tema 8: Arrays Representación de Datos y Aplicaciones © Natividad Martínez Madrid 13 Ejemplo: Inicialización de arrays public class Factorial { private int[] fact; public Factorial(int dimension) { fact = new int[dimension]; fact[0] = 1; for (int i = 1; i < fact.length; i++) fact[i] = fact[i-1] * i; } [...] } Tema 8: Arrays Representación de Datos y Aplicaciones © Natividad Martínez Madrid 14 7
  • 8. Otra inicialización de arrays ● De manera explícita en el momento de su declaración: int[] arrayEntero = {1,2,3,4,5}; String[] diasSemana = {“lunes”, “martes”, “miercoles”, “jueves”, “viernes”, “sabado”,“domingo”}; Punto[] puntos = {new Punto(1,2), new Punto(3,4); ● Determina el tamaño del array ● Sólo en el momento de la declaración Tema 8: Arrays Representación de Datos y Aplicaciones © Natividad Martínez Madrid 15 Acceso a los arrays Dos formas de acceder a su información: 1. Consulta de su longitud ● Atributo de tipo entero positivo (de sólo lectura) length que proporciona el tamaño del array nombreArray.length 2. Indexación ● Acceso a los elementos del array a través de su índice ● El índice siempre tiene un rango entre 0 y N-1 siendo N el tamaño del array nombreArray[i] Tema 8: Arrays Representación de Datos y Aplicaciones © Natividad Martínez Madrid 16 8
  • 9. Ejemplo: Acceso arrays ● Crea un array con los enteros del 1 al argumento introducido, e imprime la suma de los elementos public class Serie { public static void main (String[] args){ int tamanyo = Integer.parseInt(args[0]); int[] a1 = new int[tamanyo]; int suma = 0; for (int i = 0; i < a1.length; i++) { a1[i] = i + 1; suma += a1[i]; } System.out.println("La suma es: " + suma); } } Tema 8: Arrays Representación de Datos y Aplicaciones © Natividad Martínez Madrid 17 Ejemplo: Acceso arrays public class Serie2 { private int[] a1; private int suma; public Serie2(int tamanyo){ a1 = new int[tamanyo]; suma = 0; for (int i = 0; i < a1.length; i++) { a1[i] = i + 1; suma += a1[i]; } } public static void main (String[] args){ int tamanyo = Integer.parseInt(args[0]); Serie2 rec = new Serie2(tamanyo); System.out.println("La suma es: " + rec.suma); } } Tema 8: Arrays Representación de Datos y Aplicaciones © Natividad Martínez Madrid 18 9
  • 10. Copia de arrays ● La asignación del valor de una variable de array a otra sólo copiará la referencia Punto[] puntos2 = puntos; Tema 8: Arrays Representación de Datos y Aplicaciones © Natividad Martínez Madrid 19 Uso de la memoria en la inicialización de un array Memoria de pila Memoria de heap Punto[] puntos2 = puntos; puntos2 puntos length 2 puntos[0] puntos[1] null x 1 y 2 Tema 8: Arrays Representación de Datos y Aplicaciones © Natividad Martínez Madrid 20 10
  • 11. Ejemplo: Copia arrays public class Arrays { public static void main (String[] args){ int[] a1 = {1,2,3,4,5}; int[] a2; a2 = a1; for (int i = 0; i < a2.length; i++) a2[i]++; for (int i = 0; i < a1.length; i++) System.out.println("a1[" + i + "] = " + a1[i]); } } ● ¿Qué imprime este programa? Tema 8: Arrays Representación de Datos y Aplicaciones © Natividad Martínez Madrid 21 Copia de arrays ● Se puede utilizar un bucle: public class EjemploCopia { public static int[] copia (int[] x1){ int[] x2 = new int[x1.length]; for (int i = 0; i < x1.length; i++) x2[i] = x1[i]; return x2; } public static void main (String[] args){ int[] a1 = {1,2,3,4,5}; int[] a2 = copia(a1); for (int i = 0; i < a2.length; i++) a2[i]++; for (int i = 0; i < a1.length; i++) System.out.println("a1[" + i + "] = " + a1[i] + "; a2[" + i + "] = " + a2[i]); } } Tema 8: Arrays Representación de Datos y Aplicaciones © Natividad Martínez Madrid 22 11