PDF de programación - Tema 9: Bibliotecas y Colecciones

Imágen de pdf Tema 9: Bibliotecas y Colecciones

Tema 9: Bibliotecas y Coleccionesgráfica de visualizaciones

Publicado el 12 de Enero del 2019
334 visualizaciones desde el 12 de Enero del 2019
3,5 MB
40 paginas
Programación

Tema 9: Bibliotecas y Colecciones

Programación DIT-UPM

1

Contenidos

l Bibliotecas
l Concepto de colección
l Definición y uso de lista (List, ArrayList)
l Recorridos sobre colecciones
l Conjunto (Set, HashSet)
l Clases auxiliares-Arrays

Programación DIT-UPM

2

l Biblioteca (library): concepto genérico de

Bibliotecas

programación para referirse a un agrupamiento
y encapsulación de código que facilita la
reutilización de software.

l En java, las bibliotecas se denominan paquetes

(packages):
n Agrupan clases útiles relacionadas entre sí.

Programación DIT-UPM

3

Bibliotecas

l Las bibliotecas de java:

n Incorporan miles de clases y decenas de miles de

métodos

n Un programador Java competente debe ser capaz de

trabajar con las bibliotecas.
¡  Conocer algunas clases importantes por su nombre
¡  Saber cómo encontrar otras clases útiles cuando se

necesiten.

¡  Basta conocer la interfaz, no la implementación.

Programación DIT-UPM

4

Bibliotecas

l  Biblioteca estándar de java

(API: Application Programmers’ Interface):
n  Documentación en formato HTML
n  Descripción de la interfaz (información pública) de las clases:

¡  nombre de la clase
¡  descripción general de la clase
¡ 
lista de constructores y métodos
¡  resultados y parámetros de constructores y métodos
¡  descripción del propósito de cada constructor y método

n  No incluye información de implementación:

¡  campos/métodos privados
¡  cuerpos (código fuente) de cada método

Programación DIT-UPM

5

Bibliotecas

l Uso de las bibliotecas de clases:

n Deben ser importadas con una sentencia import

(excepto las clases de java.lang).

n Pueden ser usadas como clases del proyecto actual.

¡  Se pueden importar clases concretas:

import java.util.ArrayList;!

¡  Importar paquetes enteros:

import java.util.*;!

¡  Static import: permite referirse a atributos/métodos
definidos en una clase como public static sin
especificar la clase

Programación DIT-UPM

6

Bibliotecas

public class Circulos {!
public static void main(String[] args) {!
System.out.println(”Un círculo de 5 cm de radio, tiene:");!
System.out.println(”Long.Circunf.: " + (2 * Math.PI * 5) + " cm");!
System.out.println(”Área: “ +(Math.PI * Math.pow(5,2))+ ” cm2");!
}!
}!
!
import static java.lang.Math.*;!
import static java.lang.System.out;!
public class HelloWorld {!
public static void main(String[] args) {!
out.println(”Un círculo de 5 cm de radio, tiene:");!
out.println(”Long.Circunf.: " + (2 * PI * 5) + " cm");!
out.println(”Área: “ +(PI * pow(5,2))+ ” cm2");!
}!
}!

Programación DIT-UPM

7

Contenidos

l Bibliotecas
l Concepto de colección
l Definición y uso de lista (List, ArrayList)
l Recorridos sobre colecciones
l Conjunto (Set, HashSet)
l Clases auxiliares-Arrays

Programación DIT-UPM

8

Colecciones
l Los programas manejan gran cantidad de datos

l Los arrays permiten hacerlo, pero tienen

del mismo tipo

tamaños fijos

l Las colecciones son clases predefinidas que
permiten almacenar datos del mismo tipo
n El tamaño puede variar –no predeterminado
n Se pueden manejar estos datos de formas diferentes

(Lista, Conjunto, Mapa)

n Trabajan sólo con objetos

¡  Importante: Clases envoltorio para tipos primitivos

Programación DIT-UPM

9

Jerarquías de colecciones

Programación DIT-UPM

10
10

Colecciones genéricas

l Las clases e interfaces de colecciones son

genéricas: valen para cualquier tipo de objetos

l Pero hay que indicar el tipo concreto de
objetos: el tipo de objetos es un parámetro
especial (se marca entre ángulos)
n List<E>
n List<Punto> camino = null;

// Lista de elementos de tipo E
// lista de puntos

l El compilador se asegura de que en una

colección sólo se manejan objetos del tipo
indicado

Programación DIT-UPM

11

Colecciones más
importantes

l package java.util
n interface List<E>

n interface Set<E>

¡ class ArrayList<E> implements List<E>

¡ class HashSet<E> implements Set<E>

n interface Map<K, V>

¡ class HashMap<K,V> implements Map<K,V>



Programación DIT-UPM

12

Métodos de la interfaz
Collection<E>

l  boolean add(E elemento)
l  void clear()
l  boolean contains(E elemento)
l  boolean equals (Object x)
l  boolean isEmpty()
l  Iterator<E> iterator()
l  boolean remove(E elemento)
l  int size()
l  Object[] toArray()
l  …

Programación DIT-UPM

13

Contenidos

l Bibliotecas
l Concepto de colección
l Definición y uso de lista (List, ArrayList)
l Recorridos sobre colecciones
l Conjunto (Set, HashSet)
l Clases auxiliares-Arrays

Programación DIT-UPM

14

interface List<E>

l Lista de objetos de tipo E

n se respeta el orden en el que se insertan
n admite duplicados
n los datos están indexados
n el tamaño se adapta dinámicamente a lo que sea

necesario
n parecido a un array de tamaño dinámico

Programación DIT-UPM

15

interface List<E>

int indexOf(E elemento)

l  boolean add(E elemento)
l  void add(int posicion, E elemento)
l  void clear()
l  boolean contains(E elemento)
l  boolean equals(Object x)
l  E get(int posicion)
l 
l  boolean isEmpty()
l  Iterator<E> iterator()
l  E remove(int posicion)
l  boolean remove(E elemento)
l  E set(int posicion, E elemento)
l 
l  Object[] toArray()

int size()

[En rojo: pueden lanzar excepciones]

Programación DIT-UPM

16
16

Implementaciones de
List<E>

l ArrayList<E>
n array dinámico
n Usa poca memoria
n Recorridos rápidos, inserción y borrado lento

l LinkedList<E>

n lista encadenada
n Usa memoria extra
n Recorrido lineal rápido, otros lentos
n inserciones y eliminaciones internas rápidas

Programación DIT-UPM

17

class ArrayList<E>


implements List<E>

l Crear una lista de Strings
ArrayList<String> notes = new ArrayList<String>();

l Con upcasting
List<String> notes = new ArrayList<String>();

l Necesario especificar:

n el tipo de la colección: ArrayList
n el tipo de los objetos que contendrá: <String>



Programación DIT-UPM

18

Uso de la colección

public class Notebook {
private ArrayList<String> notes;


public Notebook () {

}

notes = new ArrayList<String>();

public void almacenaNota(String nota) {
notes.add(nota);
}
public int numeroDeNotas() {
return notes.size();
}
...
}

Creación de la lista

Añadiendo una nota nueva

Devuelve el número de notas

Programación DIT-UPM

19

Objetos de la colección

Programación DIT-UPM

20

Recuperación de objetos

Comprueba la

validez del índice

public void muestraNota(int numeroNota)
{
if(numeroNota < 0) {
// Esto no es un número de nota válido.
}
else if(numeroNota < numeroDeNotas ()) {
System.out.println(notes.get(numeroNota));
}
else {
// Esto no es un número de nota válido.
}
}

Recupera e imprime la nota

Programación DIT-UPM

21

Borrado de objetos



public void eliminaNota (int posicion) {


Comprueba la

validez del índice

// posicion incorrecta, no hace nada

if (posicion <0 ) {


} else if (posicion < numeroDeNotas() ) {

} else {

}

notes.remove(posicion);

// posicion incorrecta, no hace nada

}

Elimina el objeto por su índice

Programación DIT-UPM

22

remove: reasigna índices!

remove(índice)

Programación DIT-UPM

23

Ejemplos

List <Integer> lista= new ArrayList <Integer> () ;
lista.add(1);
lista.add(9);
lista.add(1, 5);
System.out.println(lista.size()); // 3
System.out.println(lista.get(0)); // 1
System.out.println(lista.get(1)); // 5
System.out.println(lista.get(2)); // 9
for (int n: lista)
System.out.print(n); // 1 5 9

Programación DIT-UPM

24

Listas - arrays

Listas

ArrayList<E> x;

Arrays

E[] x;

x = new ArrayList<E>()

x = new E[n]

x.add(valor)

x.size()

x.remove(n)

x.get(n)
x.set(n,v)
Tamaño variable

-

x.length

-

x[n]
x[n] = v
Tamaño fijo: n

Programación DIT-UPM

25

Contenidos

l Bibliotecas
l Concepto de colección
l Definición y uso de lista (List, ArrayList)
l Recorridos sobre colecciones
l Conjunto (Set, HashSet)
l Clases auxiliares-Arrays

Programación DIT-UPM

26

Bucle for-each

Forma general del bucle for-each

palabra clave for

cabecera bucle

for(TipoElemento elemento : colección) {
cuerpo bucle
}

Sentencia(s) que se repiten

l Para cada elemento de una colección de

objetos de TipoElemento,
haz las acciones del cuerpo del bucle



Programación DIT-UPM

27

Recorridos de colecciones

// Para recorrer cualquier colección
// for-each
public void listaNotas(){
for(String nota : notes) {
System.out.println(nota); }
}

// Para colecciones indexadas
public void listaNotasForNormal(){
for (int i = 0; i < notes.size(); i ++) {
System.out.println( notes.get(i) ); }
}

// Para colecciones indexadas también bucle while
public void listaNotasWhile() {

int i = 0;
while (i< notes.size()) {



System.out.println( notes.get(i) );
i++; }

}

Programación DIT-UPM

28

Contenidos

l Bibliotecas
l Concepto de colección
l Definición y uso de lista (List, ArrayList)
l Recorridos sobre colecciones
l Conjunto (Set, HashSet)
l Clases auxiliares-Arrays

Programación DIT-UPM

29

interface Set<E>
l No permite elementos repetidos (un elemento

pertenece o no al conjunto)

l No tienen orden
l El tamaño se adapta dinámicamente

Programación DIT-UPM

30

interface Set<E>

l  boolean add(E elemento)
l  void clear()
l  boolean contains(E elemento)
l  boolean equals(Object x)
l  boolean isEmpty()
l  Iterator<E> iterator()
l  boole
  • Links de descarga
http://lwp-l.com/pdf14832

Comentarios de: Tema 9: Bibliotecas y Colecciones (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