Você está na página 1de 4

UnidadDidactica4: LosArrays

Un``Array''esunalistadeelementosdelmismotipo(homognea),cadaunoellosidentificado porunndice. SepuedeaccederaloselementosdelArray(paraguardarorecuperarlainformacin)encualquier orden. ElArrayquedadefinidopor eltipobsicodeelementosqueaglutina, elnmerodeelementos(longitud).

Eslaestructuradedatosqueseusamsfrecuentementeenprogramacin. LagestindeinformacinconelArrayeseficiente.Dehecho,lamemoriadelordenadorse gestionacomounArrayenloslenguajesdebajonivel. LosArraysseutilizancontantafrecuenciaquetodosloslenguajesdeprogramacinofrecenalgn modoparautilizarlosconfacilidad.

ArraysenJava

EnJava,losArraypuedenserdecualquiertipodedato,incluidosobjetos. EltipodedatoArrayes,asuvez,unobjeto. LasvariablesdeltipoArraysedeclaranutilizando[],delsiguientemodo:


tipo_basico[] nombre_variable

Porejemplo,
int[] fila;

declaralavariablefiladeltipoArraydedatosdeltipoint. Estasvariablesalmacenarnlareferenciaalobjeto. Paracrearelobjeto,seutilizaeloperadornewdelaforma:


new tipo_basico[numero_de_elementos]

Porejemplo,

fila = new int[100];

creaelobjetoquepuedealmacenar100enteros. Sepuededeclararlavariableycrearelobjetoenlamismainstruccin:
int[] fila = new int[100];

AcadaunodeloselementosdelArrayseaccedeconelnombreseguidodelndiceentre corchetes.Elndicevaraentre0y almacenar.As,


fila[99] = 1763;

,siendo elnmerodeelementosquepuede

almacenaelvalor1763enlaltimaposicindelArrayfila. Cadaunodeloscomponentessepuedeutilizarcomounavariablecualquieradeltipodedato bsicoquealmacena. Porejemplo,elArrayfilaofrecela100variablesdeltipoint:


fila[0], fila[1], ... ,fila[98], fila[99]

ElobjetoArrayincluyeunavariablequeeslalongitudyquetieneelnombrelength.La variableespblicaysepuedeaccederaelladirectamentecomouncampodelobjeto. Enelejemplodefila,esteprogramaimprime100:


public class p2t2p1{ public static void main(String[] args) { int[] fila = new int[100]; int cuantos = fila.length; System.out.println(cuantos);}}

ObjetosArray

Lavariablelength esdeltipofinal,seasignaenlacreacindelobjetoynosepuede modificarposteriormente. Cuandosecreaelobjeto,todosloselementostomanunvalorinicial.Sisetratadetiposbsicos tomanelvalorcero,sisonnmerosocaracteres,oelvalorfalsesisondeltipoboolean.Si setratadereferenciasaobjetos,elvalorpordefectoesnull. LosArrayssepuedencreareinicializaralmismotiempo.Paraello,seutilizanlosvaloresentre llavesconelformato


tipo_dato[] variable = { v1 , v2 , v3 , . . . , vN};

donde sonlos valoresqueseasignanalasposiciones Array. Porejemplo,conlainstruccin:


double[] primos20 = {2.,3. 5.,7.,11., 13.,17.,19.};

del

secreaelobjetoprimos20comounArrayde8datosdeltipodouble.Enlacreacindel objeto,primos20.lengthseinicializaconelvalor8,yyanopuedemodificarse.Elrestode losvaloressiquesepuedenmodificar,yaqueprimos20[0],...,primos20[7]son8variables deltipodouble. Lasalidadelprograma:


public class p2t2p4{ public static void main(String[] args){ double[] primos20 = {2.,3.,5.,7.,11.,13.,17.,19.}; for(int i = 0;i<primos20.length;i++) {primos20[i]-=1; System.out.print(primos20[i] +" "); } }}

ser:1.0 2.0 4.0 6.0 10.0 12.0 16.0 18.0

Arraysbidimensionales

Tambinsepuedeorganizarlainformacinentablasdedosdimensiones,condosndicespara accederaloselementos. Conlainstruccin:


int[][] mat = new int[10][10]

secreaunamatrizcapazdealmacenar100elementosdeltipointyaellosseaccedeconlas

variablesmat[i][j]. Sepuedencreartablasdecualquierdimensin,perohayquellevarcuidadoensuuso,yaquela memoriaqueutilizancrecemuyrpidamente.Porejemplo,lamatriz


int[][][] mat3 = new int[100][100][100]

utilizarmsde4Mbytesdememoriaparaalmacenarelmillndeenteros. UnArraybidimensionaleslaestructuradedatosadecuadaparaalmacenarlainformacindela matricesqueseutilizanenlgebra.LosArraystridimensionales,sonlosapropiadospara almacenarinformacindetensores. Ilustramossuusoconelprogramasiguiente


public class p2t2p6{ public static void main(String[] args){ int[][] mat = new int[3][5]; for(int i=0;i<mat.length;i++) for (int j=0;j<mat[i].length;j++) mat[i][j] = (i+1)*10 + (j+1); for(int i= 0;i<mat.length;i++) { for (int j=0;j<mat[i].length;j++) System.out.print(mat[i][j]+ " "); System.out.println();} }}

queproducelasalida:
11 21 31

12 22 32

13 23 33

14 24 34

15 25 35

Elnmerodefilasestalmacenadoenmat.lengthyelnmerodecolumnasdelafila est almacenadaenmat[k].length

Você também pode gostar