Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
notas-ne0 notas&45'/
%ero hay que tener en cuenta que el segundo neW hace que se pierda el contenido anterior,
Aealmente un array es una referencia a (alores que se almacenan en memoria mediante el operador
neW* si el operador ne0 se utili0a en la misma referencia* el anterior contenido se queda sin
referencia y* por lo tanto se pierde,
Un array se puede asignar a otro array si son del mismo tipo"8
int notasPQ%
int eMemploPQ'ne0 int&-.'/
notas'eMemplo%
)n el /ltimo punto* notas equi(ale a ejemplo, )sta asignacin pro(oca que cualquier
cambio en notas tambi1n cambie el array ejemplos, )s decir esta asignacin anterior* no
copia los (alores del array* sino que notas y ejemplo son referencias al mismo array,
)jemplo8
int notasPQ'R(+(+(T%
int eMemploPQ'notas/
eMemplo' notas%
ING FERNANDO MENDOZA APAZA
1#
PROGRAMACION DIGITAL II UNIVERSIDAD NACIONAL DEL CALLAO
eMemploP0Q'.%
System.out.println(notasP0Q$%//"scribir% el n6mero 7
arrays multidimensionales
.os arrays adem!s pueden tener (arias dimensiones, )ntonces se habla de arrays de
arrays arrays que contienen arrays" )jemplo8
int notasPQPQ%
notas es un array que contiene arrays de enteros
notas ' neL intP(QP-,Q%//notas est= compuesto por ( arrays
//de -, enteros cada uno
notasP0QP0Q'K%//el primer valor es 0
%uede haber m!s dimensiones incluso notasXGYX5YXZY", .os arrays multidimensionales
se pueden iniciali0ar de forma m!s creati(a incluso, )jemplo8
int notasPQPQ'ne0 int&5'&'///Uay * arrays de enteros
notasP0Q'ne0 int&-00'/ //El primer array es de -00 enteros
notasP-Q'ne0 int&,(0'/ //El segundo de ,(0
notasP,Q'ne0 int&100'/
notasP(Q'ne0 int&-00'/
notasP1Q'ne0 int&,00'/
Eay que tener en cuenta que en el ejemplo anterior* notasXDY es un array de 6DD
enteros, $ientras que notas* es un array de F arrays de enteros,
Se pueden utili0ar m!s de dos dimensiones si es necesario,
longitud de un array
.os arrays poseen un m1todo que permite determinar cu!nto mide un array, Se trata de
lengt+ )jemplo continuando del anterior"8
S*stemoutprintln%notas.lengt+(% //Sale *
S*stemoutprintln%notas&4'.lengt+(% //Sale 100
la clase Vrrays
)n el paquete javautils se encuentra una clase est!tica llamada Arra*s, Una clase
est!tica permite ser utili0ada como si fuera un objeto como ocurre con .at+", )sta
clase posee m1todos muy interesantes para utili0ar sobre arrays,
Su uso es
Arra*s.m5todoar#umentos!;
)ll
%ermite rellenar todo un array unidimensional con un determinado (alor, Sus
argumentos son el array a rellenar y el (alor deseado8
int valores&'-ne0 int&46'/
Arra*sfll(valores+H-$%//Dodo el array vale H-
#ambi1n permite decidir desde que ndice hasta qu1 ndice rellenamos8
Arra*s.fll(valores+*+.+H-$%//>el elemento * al 7 valdr=n H-
ING FERNANDO MENDOZA APAZA
18
PROGRAMACION DIGITAL II UNIVERSIDAD NACIONAL DEL CALLAO
equals
Compara dos arrays y de(uel(e true si son iguales, Se consideran iguales si son del
mismo tipo* tamao y contienen los mismos (alores,
sort
%ermite ordenar un array en orden ascendente, Se pueden ordenar slo una serie de
elementos desde un determinado punto hasta un determinado punto,
int xPQ'R1+*+,+(+6+.+,+(+K+*T%
Arra*ssort(x$%//Estar= ordenado
Arra*s.sort(x+,+*$%//Wrdena del ,X al 89 elemento
binar*Searc+
%ermite buscar un elemento de forma ultrarr!pida en un array ordenado en un array
desordenado sus resultados son impredecibles", Ce(uel(e el ndice en el que est!
colocado el elemento, )jemplo8
int xPQ'R-+,+(+1+*+)+6+.+K+-0+--+-,T%
Vrrays.sort(x$%
System.out.println(Vrrays.&inarySearc8(x+.$$/::>a 6
el m;todo System.arraysCopy
.a clase System tambi1n posee un m1todo relacionado con los arrays* dicho m1todo
permite copiar un array en otro, Aecibe cinco argumentos8 el array que se copia* el
ndice desde que se empie0a a copia en el origen* el array destino de la copia* el ndice
desde el que se copia en el destino* y el tamao de la copia n/mero de elementos de la
copia",
int unoPQ'R-+-+,T%
int dosPQ'R(+(+(+(+(+(+(+(+(T%
System.arraycopy(uno+ 0+ dos+ 0+ uno.lengt8$%
$or (int i'0%iN'.%i//$R
System.out.print(dosPiQ/Y Y$%
T //Sale --,((((((
clase String
%ara +a(a las cadenas de texto son objetos especiales, .os textos deben manejarse
creando objetos de tipo String, )jemplo8
String texto- ' Zrue&a de texto"#%
.as cadenas pueden ocupar (arias lneas utili0ando el operador de concatenacin :+;,
String texto, '#Este es un texto 9ue ocupa /
;varias lneas+ no o&stante se puede /
per@ectamente encadenar#%
#ambi1n se pueden crear objetos String sin utili0ar constantes entrecomilladas* usando
otros constructores8
c+ar&' pala&ra ' R[Z4+4a4+4l4+4&4+4r4+4a4T%//Vrray de c8ar
String cadena ' ne0 String(pala&ra$%
b*te&' datos ' RK6+K.+KKT%
ING FERNANDO MENDOZA APAZA
1$
PROGRAMACION DIGITAL II UNIVERSIDAD NACIONAL DEL CALLAO
String codifcada ' ne0 String (datos+ ..*K\-#$%
)n el /ltimo ejemplo la cadena codi8cada se crea desde un array de tipo byte que
contiene n/meros que ser!n interpretados como cdigos Unicode, -l asignar* el (alor
LLF[\6 indica la tabla de cdigos a utili0ar,
comparacin entre o&Metos String
.os objetos String no pueden compararse directamente con los operadores de
comparacin, )n su lugar se deben utili0ar estas expresiones8
cadena1'equalscadena2", )l resultado es true si la cadena6 es igual a la cadena5,
-mbas cadenas son (ariables de tipo String
cadena1'equals<gnoreCasecadena2", Como la anterior* pero en este caso no se tienen
en cuenta may/sculas y min/sculas,
s1'compare=os2", Compara ambas cadenas* considerando el orden alfab1tico, Si la
primera cadena es mayor en orden alfab1tico que la segunda de(uel(e 6* si son iguales
de(uel(e D y si es la segunda la mayor de(uel(e J6, Eay que tener en cuenta que el orden no
es el del alfabeto espaol* sino que usa la tabla -SC''* en esa tabla la letra 9 es mucho mayor
que la o,
s1'compare=o<gnoreCases2", 'gual que la anterior* slo que adem!s ignora las
may/sculas disponible desde +a(a 6,5"
String.valueW@
)ste m1todo pertenece no slo a la clase String* sino a otras y siempre es un m1todo que
con(ierte (alores de una clase a otra, )n el caso de los objetos String* permite con(ertir
(alores que no son de cadena a forma de cadena, )jemplos8
String numero ' String.valueW@(-,(1$%
String @ec8a ' String.valueW@(neL >ate($$%
)n el ejemplo se obser(a que este m1todo pertenece a la clase String directamente* no
hay que utili0ar el nombre del objeto creado como se (er! m!s adelante* es un m1todo
est!tico",
m;todos de las varia&les de las cadenas
Son m1todos que poseen las propias (ariables de cadena, %ara utili0arlos basta con
poner el nombre del m1todo y sus par!metros despu1s del nombre de la (ariable String,
)s decir8 variableString.!todo"arg#entos$
lengt+
%ermite de(ol(er la longitud de una cadena el n/mero de caracteres de la cadena"8
String texto-'#Zrue&a#%
System.out.println(texto-.lengt8($$%//Escri&e )
concatenar cadenas
Se puede hacer de dos formas* utili0ando el m1todo concat o con el operador +,
)jemplo8
String s-'#Fuenos #+ s,'#das#+ s(+ s1%
s( ' s- / s,%
s1 ' s-.concat(s,$%
ING FERNANDO MENDOZA APAZA
20
PROGRAMACION DIGITAL II UNIVERSIDAD NACIONAL DEL CALLAO
ING FERNANDO MENDOZA APAZA
21