PDF de programación - Tema 2. El lenguaje de programación Java. Arrays y cadenas - Programación en Java

Imágen de pdf Tema 2. El lenguaje de programación Java. Arrays y cadenas - Programación en Java

Tema 2. El lenguaje de programación Java. Arrays y cadenas - Programación en Javagráfica de visualizaciones

Publicado el 5 de Septiembre del 2020
498 visualizaciones desde el 5 de Septiembre del 2020
175,7 KB
26 paginas
Creado hace 21a (02/03/2003)
Programación en Java

Tema 2. El lenguaje de programación Java.
Arrays y cadenas

Luis Rodríguez Baena

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática

1

Arrays y colecciones

Hay dos formas de guardar varias referencias a objetos:

Arrays

Más eficiente.
Tamaño limitado.
Sólo puede almacenar referencias de un tipo.

Colecciones.

Menos eficiente.
Tamaño variable.
Almacena objetos sin tipo específico.
Clases genéricas List, Set y Map.

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

2

2

Declaración de arrays

No son un tipo de dato, sino una clase que extiende la clase Object.
Declaración.

modificadores tipo[] identificador;
Los modificadores se aplican al array, no a los elementos.

Asignar espacio de almacenamiento creando una instancia mediante

new.

int[] a = new int[5];
int b[];
b = new int[3];
length, indica el número de elementos.
Los índices van de 0 hasta length – 1.

Cualquier otro valor lanza la excepción ArrayIndexOutOfBoundException.

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

3

3

Inicialización de arrays (I)

Inicialización a los valores por omisión.

Un array de tipos primitivos inicializa los elementos a sus valores

por omisión.

Un array de referencias inicializa los elementos a referencias nulas

(null).
Un array de referencias no guarda el contenido del objeto, sino una

referencia a la instancia.

0
0

1
0

2
0

3
0

4
0

0

null

1

null

2

null

3

null

4

null

int a[] = new a[5];

a

String palabras[] = new String[5];

palabras

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

4

4

Inicialización de arrays (II)

Llenar el array.

Mediante asignaciones:
int[] a = new int[5];
//Carga de elementos en el array
//con números aleatorios entre 0 y 19.
for (int i=0;i<=a.length-1;i++)

a[i] = (int) (Math.random() * 20);

En arrays de referencia.

oH

l

a

0

null

1

null

2

null

3

4

null

palabras[3] = "Hola";

palabras

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

5

5

Inicialización de arrays (III)

Inicialización de arrays en la declaración.

Sólo se puede hacer en la declaración.
No se debe poner el tamaño del array.

Se crea espacio de almacenamiento y se rellena en la misma

declaración

char b[] = {'a','b','c'};.
Integer números[] = { new Integer(1),
new Integer(2),
new Integer(3)};

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

6

6

Asignación de arrays

Cuando se asigna un array

a otro array se copia la
referencia.
Copiar un array supone
asignar los elementos a
otro array.

0

null

1

null

2

null

3

4

null

String palabras2[] = palabras;

oH

l

a

palabras2

palabras

x

x

x

x

palabras2

0

null

1

null

2

null

3

4

null

palabras2[3] = “xxxx”

palabras

La clase System contiene un método para copiar arrays.

public static void arraycopy(Object origen, int posOrig,

Object dest, int posDest,
int length)

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

7

7

Arrays y métodos

Arrays y métodos.

Los métodos también pueden devolver arrays.
static int[] cargaArray(int n){
int[] a = new int[5];
for (int i=0;i<=a.length-1;i++)
return a;

a[i] = (int) (Math.random() * 20);

}
O recibir arrays como argumentos

En este caso, el array se pasa por referencia (como todos los objetos).

static void imprimirArray(Object[] v){

//Muestra los elementos del array
for (int i=0;i<=v.length-1;i++)

System.out.println("Elemento " + i + ": " + v[i]);

}

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

8

8

Arrays multidimensionales (I)

Declaración.

String [][] cad = new String[3][2];

String cad[][] = new String[3][];
cad[1] = new String[3];
String otra[] = {“hola”,”adios”};
cad[2] = otra;

null

null

null

null

null

null

null

null

null

hola

adios

cad

null

cad

otra

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

9

9

Arrays multidimensionales (II)

El atributo length en arrays multidimensionales.

a.length, devolvería el tamaño de la primera dimensión.
a[i].length, devolvería el tamaño de la fila i.

for(int i=0;i <= cad.length-1;i++){

System.out.println("Línea " + i );
if(cad[i] == null)
else

System.out.println(cad[i]);
for(int j=0;j<=cad[i].length-1;j++)

};

System.out.println(cad[i][j]+" ");

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

10

10

El array args

Contiene los argumentos pasados mediante la línea de órdenes.

class HolaMundo {

public static void main(String args[]) {

// Muestra "¡Hola mundo, hoy es dd-mm-aa!"
int conta = args.length;
System.out.print("!Hola ");
if(conta>0){

for(int i=0;i<=conta-1;i++)
System.out.println();

System.out.print(args[i] + ", ");

}
else

}
}

System.out.println("anónimo,");

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

11

11

La clase Arrays (I)

La bibilioteca java.utils contiene la clase Arrays con

funciones de utilidad para los arrays.
Sería necesario incorporar import java.utils.*; al comienzo

del archivo fuente.
Comparar arrays.

public static boolean equals(tipo[] a, tipo[] a2)

int v1[] = {1,2,3};
int v2[] = {1,2,3};
System.out.println(Arrays.equals(v1,v2));

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

12

12

La clase Arrays (II)

Rellenar arrays.

Rellenar el array a con el valor del segundo argumento.

public static void fill(tipo[] a, tipo val)

Rellenar el array a entre dos posiciones dadas con el valor del

segundo argumento.
public static void fill(tipo[] a, int desde, int hasta,

tipo val)

Ordenar arrays.

public static void sort(tipo[] a)

Buscar en arrays

public static int binarySearch( tipo[] a, tipo elemento)
Buscar el elemento en el array. Si lo encuentra devuelve su posición, si no

devuelve un número negativo con la posición donde debería estar.

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

13

13

Cadenas

Dos clases para almacenar cadenas.

String. Cadenas inmodificables.

Consume menos recursos.

StringBuffer. Cadenas modificables.

h

o

l

a

cad1

String cad1 = “hola”;

h

o

l

a

a

d

i

o

s

cad1

cad1 = “adios”

a

b

c

cad2

StringBuffer cad2 = “abc”;

a

b

c

d

e

f

cad2.append(“def”);

cad2

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

14

14

Constructores de String y StringBuffer

Se puede construir un objeto de la clase String como si se tratara de

un tipo de dato primitivo.
String cad1 = “hola”;
Constructores de String:

String(), crea una nueva cadena vacía.
String(String valor). Crea una nueva cadena a con el contenido de
String(StringBuffer sb). Crea una nueva cadena a partir de un

valor.
StringBuffer.

Constructores de StringBuffer:

de 16 caracteres.

StringBuffer(), crea una nueva cadena vacía con una capacidad inicial
StringBuffer(int longitud). Crea una nueva cadena vacía con una
StringBuffer(String str). Crea un nuevo StringBuffer a partir

capacidad inicial de longitud caracteres.
de una valor de tipo String.

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

15

15

Comparación de cadenas (I)

El operador de igualdad sólo compara si las referencias son

iguales.

String c1 = "hola";
String c2;
String c3 = new String(c1);
c2 = c1;
System.out.println(c1 == c2); //Devuelve true
System.out.println(c1 == c3); //Devuelve false

Método equals.

public boolean equals(String str)

System.out.println(c1.equals(c3)); //Devuelve true

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

16

16

Comparación de cadenas (II)

Método equalsIgnoreCase.

public boolean equalsIgnoreCase(String str)

c3 = "Hola";
System.out.println(c1.equalsIgnoreCase(c3)); //Devuelve true

Método compareTo.

public int compareTo(String str)
Devuelve 0 si las cadenas son iguales; mayor que 0 si la cadena que

invoca es mayor que str o menor que 0 si la cadena que invoca es
menor que str.

El número que devuelve es la direfencia entre los códigos del primer

carácter de la cadena.

c3 = "Hola";
System.out.println(c1.compareTo(c3)); //Devuelve 32
c3 = "Adios";
System.out.println(c3.compareTo(c1)); //Devuelve -39

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

17

17

Comparación de cadenas (III)

Método compareToIgnoreCase.

public int compareToIgnoreCase(String str)
c3 = "Hola";
System.out.println(c1.compareToIgnoreCase(c3)); //Devuelve 0
c3 = "Adios";
System.out.println(c3.compareToIgnoreCase(c2)); //Devuelve -7

Comparar con StringBuffer.

public boolean contentEquals(StringBuffer sb)

StringBuffer sb1 = new StringBuffer(“hola”);
System.out.println(c1.c
  • Links de descarga
http://lwp-l.com/pdf18174

Comentarios de: Tema 2. El lenguaje de programación Java. Arrays y cadenas - Programación en Java (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad