Está en la página 1de 9

Arreglos:

Los arreglos se pueden definir como objetos en los que podemos guardar mas de

una variable, es decir, al tener un unico arreglo, este puede guardar multiples

variables de acuerdo a su tamaño o capacidad, es importante recordar que las

variables guardades deben ser del mismo tipo, por ejemplo: Si tenemos un arreglo

de tipo Numerico que puede almacenar 10 variables, solo podra almacenar 10

numeros diferentes, no otras variables como caracteres o Strings.

Existen 2 tipos de arreglos, los unidimensionales, y los

multidimensionales(generalmente 2 dimensiones y se les denomina matrices), en

esta lección veremos como declarar y utilizar los arreglos unidimensionales, estos

son mas sencillos y faciles de comprender, y pueden servirnos para muchas

aplicaciones.

Declaración:

La estructura de declaración de un arreglo es la siguiente:

tipo_dedato [] nombre_variable;  //tambien puede declararse "tipo_dedato

nombre_variable[];"

ejemplos:

String array[]; //donde array es un arreglo que guardara variables tipo Strings

double array2[]; //donde array2 es un arreglo que guardara variabels tipo double

int [] array3;   //donde array3 es un arreglo que guardara variables tipo

int(numericas)

Video declarar arreglos en java:

Definir tamaño de arreglos:

Para asignar a un arreglo su tamaño o capacidad, se hace de la siguiente forma:

arreglo = new tipo_dedato[capacidad];

ejemplo:

array = new String[10];   //el arreglo array guardara hasta un maximo de 10

variables de tipo String


Para realizar una declaración de un arreglo y definir su tamaño en una misma linea

se puede usar la siguiente estructura:

String array[] = new String[10];  //se declara un arreglo y se asigna su tamaño en

una misma linea

Asignación de valores a elementos del array

Una vez se tiene declarado un arreglo, y al mismo se le ha asignado un tamaño o

capacidad, podemos accesar a los datos dentro del mismo y asignarle valores. Para

hacer esto es necesario proceder de la siguiente forma:

arreglo[indicador]=valor;

ejemplos:

array[0] = "Ejemplo"; //aqui se asigna el valor "Ejemplo" a un arreglo de String en

su primera posicion

array2[3] = 5;      //se asigna un valor de 5 al 4to elemento de un arreglo

numerico;

Es importante recordar que para accesar a los datos guardados en un arreglo se

utilizan indicadores iniciando desde el "0", si un arreglo tiene un tamaño de 10

variables, entonces se puede accesar a sus elementos con los indicadores del 0 al

9.

A continuaciòn un ejemplo mas completo:

int array1[]; //declaracion arreglo de tipo numerico

array1 = new int[3]; //tamaño del arreglo es 3 elementos

//asignacion de valores a elementos del arreglo;

array[0] =2;

array[1] = 10;

arra[2] = 7;

System.out.println("El valor de la posicion 1 en el arreglo es" + array[0]);

Fin del ejemplo:

Esperamos esta lección te haya sido de utilidad.


 java.lang.String: Java al igual que C, no posee un tipo de
dato primitivo para manejar cadenas. A diferencia de C, String
no es un arreglo de caracteres es un Objeto y ofrece diversas
ayudas para manejar cadenas:

 Declaración de constantes tipo cadena: "Hola mundo",


"\t\u05D0"

 Dos operadores para concatenar cadenas: + y +=

 Una clase por parte de la librería estándard java.lang.*

 Un método genérico para "encadenar" cualquier objeto:


toString()

 Cada cadenas es una secuencia "inmutable" (longitud fija)


de caracteres Unicode (16 bits) tipo char

 Declaración de Variables:

 Variable normal: Referencia a objetos tipo


cadena, e.g. String s="hola";

 Referencia nula: String s, t=null; // Ambas


s=t=null

 Cadena vacía: String s="", t=new String();

 Conversiones a cadena: String


s=String.valueOf(3.1416), t=obj.toString();

 Métodos Elementales:

 s.length(): Regresa el tamaño de una cadena

 s.charAt(i): Regresa un caracter de una cadena

 De Comparación:

 s.equals(t): Regresa verdadero cuando s y t son


cadenas exactamente iguales

 s.equalsIgnoreCase(t): Regresa verdadero cuando


s=t sin importar may/min.

 s.compareTo(t): Regresa cero si son iguales,


menor o mayor a cero si es s es menor/mayor a t

 s.compareToIgnoreCase(t): Lo mismo pero sin


importar mayúsculas/minúsculas

 De Búsqueda:

 s.endsWith(t): Regresa verdadero si la cadena


termina con la cadena t
 s.startsWith(t): Regresa verdadero si la cadena
inicia con la cadena t

 s.indexOf(t): Regresa posición de caracter o


cadena t dentro de s o regresa -1 si no existe

 s.lastIndexOf(t): Regresa posición de la última


aparición de t dentro de s o -1 si no existe

 s.regionMatches(pos,t,tp,tam): Regresa cierto


si encuentra parte cadena t (tp,tam) en cadena t

 De Transformación:

 s.toLowerCase(): Convierte a minúsculas

 s.toUpperCase(): Convierte a mayúsculas

 s.concat(t): Concatena cadenas, idéntico a s+t

 s.trim(): Elimina espacios al inicio/final de


la cadena

 s.replace(c1,c2): Regresa cadena que resulte de


remplazar caracter c1 por c2 en s

 s.substring(ini,fin): Regresa parte de la


cadena s entre las posiciones ini y fin
 StringBuffer: Cadenas optimizadas para acrecentan su contenido,
e.g. r += s;

StringBuffer s=new StringBuffer();


do { // Ciclo
..
s.append(datos); //Adiciona datos
..
} while(cond);
String r = s.toString(); // Texto

 Referencias:

 A Objetos: Item r;

 A Arreglos
 De datos primitivos: int[] p;

 De referencias: Item[] q;

 De arreglos: int[][] r;

 Referencia Nula: null

 Arreglos Unidimensionales

 int[] p;
 int q[];

 Arreglos Bidimensionales

 int[][] r;

 int s[][];

 Inicializando Referencias

 int[] p; // p=null

 int[] q = {8,6,4,2};

 byte[] r = new byte[1024];

 Item[] s = {new Item(),new Item()};

 Id[][] t = {{new Id(),new Id()},{new


Id()}};

 setProperties(new String[]{"Yes","No"});

 int t=p.length: Regresa el número de elementos


del arreglo p

 (int[])p.clone(): Regresa un arreglo con una


copia de los valores o referencias del arreglo p

 p==q, p.equals(q): Regresa verdadero si ambas


referencias apuntan al mismo arreglo

 Arrays.equals(p,q): Regresa cierto si ambos


arreglos contienen los mismos valores

 Arrays.sort(p): Modifica el orden de los


elementos del arreglo p

 Arrays.binarySearch(p,key): Regresa el índice


del elemento del arreglo p igual a key o regresa
-1
 Vector: Permite manejar arreglos de tamaño dinámico a diferencia de los
arreglos primitivos de tamaño fijo.

import java.util.Vector;
..
Vector p = new Vector();
..
p.add(dato); // p.addElement(dato)
if (p.size()>n) // Tamaño
p.clear(); // p.removeAllElements();
..
dato = (int)p.removeElementAt(i);
..
if ((int)p.elementAt(i)>(int)p.lastElement())
..

 Declaración de un arreglo:
 int A[]; // A es un arreglo de enteros
 int A[10]; // error, el tamaño no va aquí
 int[] A; // A es un arreglo de enteros
 int A,B[]; // A es un entero, B un arreglo
 int[] A,B; // A y B son arreglos
 String S[]; // S es un arreglo de strings
 S[1]="" // error, el arreglo no ha sido
 // creado
 Creación de un arreglo
 int A[]= new int[10]; // 10 enteros
 Subindicación de un arreglo:
 A[0], A[1], ..., A[9] // correcto
 A[10] // error, índice fuera
 // de rango
 Modificación de un arreglo:
 A[3]= 8;
 Tamaño de un arreglo:
 A.length // correcto
 A.length() // error, sin paréntesis
 Inicialización de un arreglo:
 for (int i=0; i<A.length; i++)
 A[i]= i;
 Asignación de punteros a arreglos
 int B[];
 B= A; // A y B son el mismo arreglo
 if (A==B) // Comparación de punteros
 // true!
 ...
 A[0]= 10;
 B[0] // también 10
 Copia de un arreglo:
 B= (int[])A.clone();
 TEMA 4: ARREGLOS BIDIMENSIONALES TIPO TABLA
 Un arreglo tipo tabla se define como un conjunto de datos del mismo tipo organizados en dos o
mas columnas y uno o mas renglones.
 Para procesar ( recordar solo operaciones y comparaciones) internamente todos los elementos de
la tabla se ocupan dos ciclos for(), uno externo para controlar renglón y uno interno para
controlar columna.
 Los elementos de la tabla se deberan simbolizar con el nombre de la tabla y 2 subindices, el
primer subindice referencia al renglon y el siguiente subindice referencia la columna los dos
dentro del mismo corchete.
 La declaración de una tabla sera de acuerdo a los siguientes formatos:
 1) tipodato nomtabla[][]= new tipodato[reng][col];
 ejemplo:
 int calif[][]=new int[3][4];
 double ingresos[][]= new double[3][4];
 2) Clasenumerica objetotabla[][]= new constructor[ren][col];
 ejemplo;
 Integer calif[][]= new Integer[2][3];
 Double ingresos[][]=new Double[3][4];
 Para capturar sus elementos, usaremos el procedimiento desarrollado con listas.
 Para efectuar otros procesos tales como operaciones despliegue con todos los elementos de la
tabla se deberan usar 2 ciclos un for externo para controlar renglon y un for interno para
controlar columna.
 Prog11 jsp
 <%! int edad[][]=new int[2][3], ren=0, col=0; %>

 <%

 String temp1=request.getParameter("INSERTAR");

 if(temp1==null)temp1=" ";

 if(temp1.compareTo("insertar")==0){

 if(col < 3){

 edad[ren][col]=Integer.parseInt(request.getParameter("EDAD"));

 col=col+1;};

 if(col == 3){col=0;ren=ren+1;};

 if(ren==2) {out.print("TABLA LLENA");};

 };

 if(request.getParameter("MESES") != null )

 {

 // operaciones

 for(ren=0; ren<=1; ren++)

 for(col=0;col<=2;col++)

 edad[ren][col]=edad[ren][col]*12;

 // DESPLEGANDO USANDO OBJETO TABLE DE HMTL FOR NORMAL

 out.println("<table border=2><tr><th>EDAD EN MESES</th></tr>");

 for(ren=0; ren<=1; ren++)

 { out.println("<tr>");

 for(col=0;col<=2;col++)

 { out.println("<td>"+edad[ren][col]+"</td>"); };

 out.println("</tr>"); };

 };

 // construyendo forma dinamica

 out.println("<FORM ACTION=prog11.jsp METHOD=post>");

 out.println("DAME EDAD:"+ren+","+col+"<INPUT TYPE=TEXT
NAME=EDAD>");

 out.println("<INPUT TYPE=SUBMIT NAME=INSERTAR VALUE=insertar
><BR>");

 out.println("<INPUT TYPE=SUBMIT NAME=MESES VALUE=meses><BR>");

 out.println("</FORM>");

 %>

 Corrida:


 Notas:
 Observar el formato de declaración y como se controlan los indices de captura reng, col.
 notas:
 El for reng tiene su propio grupo de instrucciones encerrados entre {}. Mientras que el for col
solo tiene una instrucción que ejecutar el print(celda ), el ultimo print(</termina renglon) es del
ciclo for reng).
 El renglon de encabezado solo tiene una celda, por eso los otros dos renglones con mas celdas se
ajustarón por su cuenta, para corregir esta situación revisar su tutorial de html(TABLE).
 Para inicializar tablas, se debera usar el siguiente formato:
 tipodato nomtabla[2][3]={1,2,3,4,5,6 };
 TAREAS PROGRAMACION JAVA JSP
 1.- CONSTRUIR UN CUADRO QUE CONTENGA LOS COSTOS FIJOS DE CUATRO
PRODUCTOS CUALESQUIERA, QUE SE PRODUCEN EN TRES PLANTAS DIFERENTES
DE UNA EMPRESA MAQUILADORA.
 2.- CONSTRUIR UN CUADRO QUE CONTENGA LOS INGRESOS MENSUALES POR
VENTAS DURANTE LOS TRES PRIMEROS MESES DEL AÑO DE CUATRO
SUCURSALES DE UNA CADENA DE AUTO REFACCIONES, AGREGAR AL FINAL
UNA LISTA QUE MUESTRE LOS INGRESOS MENSUALES TOTALES POR MESES Y
UNA SEGUNDA LISTA QUE MUESTRE LOS INGRESOS MENSUALES TOTALES POR
SUCURSAL(2 programas uno capturado y otro inicializado).
 3.-CONSTRUIR UN CUADRO QUE CONTENGA LAS COMISIONES GANADAS POR
TRES VENDEDORES, DE LOS 5 TIPOS DE LINEA BLANCA DE CONOCIDA
MUEBLERIA, ADEMAS LISTAS DE COMISIONES TOTALES Y PROMEDIOS
GANADAS POR LOS VENDEDORES, ASI COMO LISTAS DE COMISIONES TOTALES Y
PROMEDIOS POR TIPO DE LINEA BLANCA(inicializado).
 ANALIZAR ESTE CODIGO:

 ' PARA TOTALES Y PROMEDIOS POR RENGLON

 FOR R = 0 TO 3

 FOR C = 0 TO 2

 TOTRENG(R) = TOTRENG(R) + TABLA(R,C)

 NEXT C

 PROMRENG(R) = TOTRENG(R)/3

 NEXT R

 'PARA TOTALES Y PROMEDIOS POR COLUMNA

 FOR C = 0 TO 2

 FOR R = 0 TO 3

 TOTCOL(C)=TOTCOL(C) + TABLA(R,C)

 NEXT R

 PROMCOL(C) = TOTCOL(C) / 4

 NEXT C

También podría gustarte