Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1.4.agrupación de Objetos
1.4.agrupación de Objetos
Conceptos a tratar
Colecciones
Bucles
Iteradores
Arrays
Agendas
Catlogos de libreras o de productos
Sistema de matrcula de la Universidad
Adicin de elementos
Eliminacin de elementos
Bsqueda de elementos
Consulta y modificacin de elementos
Proyecto notebook1
Libreras de clases
Un ejemplo de lista
import java.util.ArrayList;
/**
Indica que se va a utilizar
* ...
la clase ArrayList del
*/
paquete java.util
public class Notebook
{
// Storage for an arbitrary number of notes.
private ArrayList<String> notes;
/**
* Perform any initialization required for the
* notebook.
*/
public Notebook()
{
notes = new ArrayList<String>();
}
...
}
Colecciones
Se especifica
Caractersticas de la coleccin
10
Uso de la coleccin
public class Notebook
{
private ArrayList<String> notes;
...
public void storeNote(String note)
{
notes.add(note);
Adicin de una nota
}
public int numberOfNotes()
{
return notes.size();
}
(delegacin)
...
}
Juan Pavn Mestras
Facultad de Informtica UCM, 2007-08
11
12
Recuperacin de un objeto
Comprobacin de
la validez de los
ndices
13
14
Clases genricas
ArrayList<Person>
ArrayList<TicketMachine>
etc.
15
Resumen
16
Iteracin
17
Iteracin
18
Cabecera
del bucle
Para cada elemento de la coleccin, hacer las cosas del cuerpo del bucle
19
Ejemplo
/**
* List all notes in the notebook.
*/
public void listNotes()
{
for(String note : notes) {
System.out.println(note);
}
}
20
Bucle while
21
Bucle while
Sentencias a repetir
Mientras se quiera continuar, hacer las cosas del cuerpo del bucle
22
23
for-each:
Ms fcil de escribir
Ms seguro: hay garanta de que acabar
while:
24
25
int index = 0;
boolean found = false;
while(index < notes.size() && !found) {
String note = notes.get(index);
if(note.contains(searchString)) {
// We don't need to keep looking.
found = true;
}
else {
index++;
}
}
// Either we found it, or we searched the whole
// collection.
26
java.util.Iterator
Iterator<ElementType> it = myCollection.iterator();
while(it.hasNext()) {
call it.next() to get the next object
do something with that object
}
public void listNotes()
{
Iterator<String> it = notes.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
Juan Pavn Mestras
Facultad de Informtica UCM, 2007-08
27
Bucle for-each
Para procesar todos los elementos uno a uno
Bucle while
Si se quiere parar a mitad de camino
Para repeticiones que no se hacen sobre una coleccin
Objeto Iterator
Si se quiere parar a mitad de camino
A menudo en las colecciones donde el acceso indexado no es
muy eficiente o imposible
28
29
Resumen
30
array
31
Arrays en Java
Declaracin
int A[];
int [] A;
int A[10];
String S[];
//
//
//
//
A es un array de enteros
igual que antes
ERROR: no se especifica el tamao en la declaracin
un array de cadenas
32
Arrays en Java
// array de 10 enteros:
// A[0]..A[9]
String[] S;
S = new String[10];
33
Arrays en Java
Array de arrays
int[][] A;
A = new int[2];
for (int i = 0; i < A.length; i++)
A[i] = new int[3];
// tambin se puede hacer as:
A = new int[2][3];
34
Arrays en Java
// correcto
// ERROR: no se usan parntesis
A[i]=i;
35
El proyecto weblog-analyzer
Pginas ms populares
Periodos de mayor ocupacin
Trfico de datos
Referencias rotas
36
Creacin de un array
public LogAnalyzer()
Creacin de objeto array
{
hourCounts = new int[24];
reader = new LogfileReader();
}
...
}
37
38
El array hourCounts
En una expresin:
adjusted = hourCounts[hour] 3;
hourCounts[hour]++;
39
El bucle for
40
Bucle for
41
42
43
Resumen
44
while (expresin_booleana)
instruccin
do
instruccin
while (expresin_booleana)
for (instruccion_inicializacin;
expresin_booleana;
instruccin_incremento)
instruccin
break
continue
45
46
Paquetes
Los paquetes:
47
Paquetes
48
Paquetes
Ejemplo:
es.ucm.sip.jpavon.cursoJava
49
Paquetes
En el ejemplo anterior:
es/ucm/sip/jpavon/cursoJava/
CLASSPATH=C:\JAVA\JDK1.1\lib\classes.zip;.;
50
Paquetes
51
Paquetes
import
52
Paquetes
java.lang
// clases e interfaces bsicas (se importa por defecto)
java.applet // clase Applet e interfaces para interaccin con navegador
java.awt // Abstract Windowing Toolkit
java.io
// E/S
java.net
// clases para comunicacin a travs de protocolos Internet
java.rmi // Programacin distribuida
java.security // Seguridad en Java
java.util
// Utilidades
Javax.swing // componentes grficos para Java
53
Paquetes
Ejemplo
package ucm.sip.juan.curso.java;
import java.util.Date;
class ImprimeFecha {
public static void main (String[] args) {
Date ahora = new Date();
System.out.println(ahora);
}
}
54