You are on page 1of 8

22/2/2015

CursodeJava:ResolucindelejerciciodeLinkedList
Megusta

Portada

5137

Seguira@redeszone

Android

Routers
Buscar WiFiAC

BandaAncha

Nossigues?

7,015seguidores

PepephoneADSL

PuntosdeAcceso

EdimaxSmartLife

Bittorrent
PLC

Redes
Java

PHP

SeguridadInformtica
SmartHome

2.309

Software

Firmwares

Manuales

Curso de Java: Resolucin del ejercicio de LinkedList


AdrinCrespo|19marzo201210:00|
Megusta

Twittear

2comentarios
0

Otro lunes ms, seguimos en RedesZone.net con el


cursodeJava.
Continuamosconlasestructurasdedatos,enestecaso
con un ejercicio propuesto en la entrega anterior,
relacionadoconlasLinkedList.Hoytambinhablaremos
delosArrayList,ytendremosunejemplodelomismo,a
la vez que os propondremos un ejercicio para que
practiquis.
Loprimerodetodovamosadarsolucinalejerciciode
la semana pasada que si acordis, estaba relacionado
conuntallerdereparacindecoches.
Vamosconlaprimeradelasclasesdenuestroejercicio,
la clase Reloj, que nicamente ser la encargada de
proporcionarnosunafechayunahoraparalasfichasde
nuestrosvehculosdeltaller.
1
2
3
4
5
6
7
8
9
10
11
12

importjava.util.Calendar;
/**
*Clasequepermiteobtenerlafechayhoraactual,
*enmilisegundosdesdelapoca
*/
publicclassReloj
{
publicstaticlongahora()
{
returnCalendar.getInstance().getTimeInMillis();
}
}

Setratadelamismaimplementacinqueenelejemploqueopusimos,porloquepodiscopiarypegartalcualest.
http://www.redeszone.net/2012/03/19/cursodejavaresoluciondelejerciciodelinkedlist/

1/8

22/2/2015

CursodeJava:ResolucindelejerciciodeLinkedList
Setratadelamismaimplementacinqueenelejemploqueopusimos,porloquepodiscopiarypegartalcualest.

Ahoravamosconlaprimeradelasclasesquenosinteresa,laclaseFichaVehiculo.Seencargarderecogertodoslos
datosreferidosalosvehculosqueentreeneltaller.Estarformaprincipalmenteporobservadoresdeatributos,que
poseenvisibilidadprivada.
1
2
3
4
5
6
7
8

publicclassFichaVehiculo
{
privatelongentrada,reparacion,salida;
privateStringmodelo;
privateStringmatricula;

/**Constructor*/
publicFichaVehiculo(Stringm,Stringma,longe)

9
{
10
modelo=m;
11
matricula=ma;
12
entrada=e;
13
reparacion=0;
14
salida=0;
15

16
}
17

18
publicStringmatricula()
19
{
20
returnmatricula;
21
}
22

23
publicStringmodelo()
24
{
25
returnmodelo;
26
}
27

28
publicvoidmodificaFechaEntrada(longfecha_entrada)
29
{
30
entrada=fecha_entrada;
31
}
32

33
publicvoidmodificaFechaSalida(longfecha_salida)
34
{
35
entrada=fecha_salida;
36
}
37

38
publicvoidmodificaFechaReparacion(longfecha_reparacion)
39
{
40
entrada=fecha_reparacion;
41
}
42

43
publicbooleanestaArreglado()
44
{
45
if(reparacion!=0)
46
{
47
returntrue;
48
}else{
49
returnfalse;
50
}
51
}
52

53
/****************Observadoresdelasfechasdereparacinysalida****/
54

55
publiclongfechaReparacion()
http://www.redeszone.net/2012/03/19/cursodejavaresoluciondelejerciciodelinkedlist/

Anlisis de producto
AdaptadoresWiFi
BancosdePrueba

PuntosdeAcceso
(AP)

CmarasIP

Reproductores
Multimedia

Mdems3G

Routers

NAS

SAI

PLC

Switches
TelfonosIP

Fabricantes
AlfaNetwork

Oceans

ASUS

OrangeLivebox

CiscoLinksys

Salicru

Comtrend

Sitecom

DLink

SpotCam

Devolo

Synology

Edimax

Thecus

FRITZ!

TPLINK

Huawei

TRENDnet

HP

Zaapa

Kaiboer

WesternDigital

ZyXEL

Tutoriales de ayuda
Android

IPsec

Bugtraq

Latch

Chromecast

MacOsX

CursodeRedes

RaspberryPI

CursoHTMLyCSS

Redes

CursoJava

SeguridadInformtica
2/8

22/2/2015

55
56
57
58
59
60
61
62
63
64
65

publiclongfechaReparacion()
{
returnreparacion;
}

publiclongfechaSalida()
{
returnsalida;
}

CursodeJava:ResolucindelejerciciodeLinkedList

Estaclasenotienemayorescomplicaciones.Sisequiere,sepuedenaadirmsdatosatenerencuentaalahorade
registrarunvehculo,yaqueesto,slosetratadeunmodelobsico.
VamosconlaclaseGestionReparaciones,queimplementarlagestindevehculosdenuestrotaller.
1
importjava.util.*;
2
publicclassGestionReparaciones
3
{
4
//Atributos
5
privateLinkedList<FichaVehiculo>lista=newLinkedList<FichaVehiculo>();
6

7
/**Metodoqueaadeunvehiculoparaserarregladoconunafecha
8
*deentrada
9
*@paramnombre
10
*@parammatricula
11
*/
12
publicvoidanadeVehiculo(Stringnombre,Stringmatricula)
13
{
14
longf=Reloj.ahora();
15
FichaVehiculofich=newFichaVehiculo(nombre,matricula,f);//creamosunnuevovehculo
16
lista.add(fich);//aadimos
17
}
18

19
/**Metodoqueaadeunafechadereparacionaunvehiculo
20
*
21
*@parammatricula
22
*/
23
publicvoidreparado(Stringmatricula)
24
{
25
booleanencontrado=false;
26
inti=0;
27

28
while(!encontrado&&i<lista.size())
29
{
30

31
//condicionesquehadecumplir(todas)
32
if(lista.get(i).matricula().equals(matricula)&&lista.get(i).fechaReparacion()==0)
33
{
34

35
lista.get(i).modificaFechaReparacion(Reloj.ahora());
36
encontrado=true;
37
}else{
38
i++;
39
}
40
}
41

42
if(encontrado==true)
43
{
44
System.out.println("Fechadereparacinmodificadacorrectamente");
45
}else{
http://www.redeszone.net/2012/03/19/cursodejavaresoluciondelejerciciodelinkedlist/

CursoJava

SeguridadInformtica

CursoPHP

Software

FabricatuFreeNAS

WhatsApp

GNULinux

Windows

IPFire

MovistarFTTH

Firmwares
FirmwareTomatoRAF

FirmwaresComtrend

FirmwareDDWRT

FirmwaresZyxel

Sguenos!
Megusta A5137personaslesgustaesto.

Seguira@redeszone

7,015seguidores

RedesZone
Seguir

+1

+ 2.309

3/8

22/2/2015

45
46
47
48
49
50
51
52
53
54
55
56
57
58
59

CursodeJava:ResolucindelejerciciodeLinkedList
}else{
System.out.println("Erroralmodificarlafechadereparacindelvehculo"+matricula);
}
}

/**Metodoqueaadeunafechadesalidaaunvehiculo
*
*@parammatricula
*/
publicvoidfechaSalidaTaller(Stringmatricula)
{
booleanencontrado=false;
inti=0;

while(!encontrado&&i<lista.size())

60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96

{
IniciasesinenFacebookparaver

Entrar
questnhaciendotusamigos.
//condicionesquehadecumplir(todas)
if(lista.get(i).matricula().equals(matricula)&&lista.get(i).fechaSalida()==0&&lista.get(i).estaArreglado())
{
ASUSRTAC68PeslarevisindelRT

AC68UconnuevaCPUBroadcom
lista.get(i).modificaFechaSalida(Reloj.ahora());
BCM4709
encontrado=true;
6personashanrecomendadoesto.
}else{
i++;
UnbuloenFacebookafirmaqueMark
}
Zuckerbergpuededesactivartucuenta
}

4personashanrecomendadoesto.
if(encontrado==true)
{
System.out.println("Fechadesalidamodificadacorrectamente");
PluginsocialdeFacebook
}else{
System.out.println("Erroralmodificarlafechadesalidadelvehculo"+matricula);
}
}

/**Borramoslaprimerafichedeunvehiculo
*
*@return
*/
publicbooleaneliminarPrimerRegistro()
{
if(lista.isEmpty())
{
returnfalse;
}else{
lista.removeFirst();
returntrue;
}
}

SuscrbeteanuestroRSS

Lo que comparten tus amigos

Sepuedenaadirmsmtodossiquerispracticar,yaqueyosloheimplementadoelfuncionamientobsicodescrito
enelenunciadodelejercicio.
Yunpequeoprogramadepruebaparaverificarquetodofuncionabien.
1
publicclassClase
http://www.redeszone.net/2012/03/19/cursodejavaresoluciondelejerciciodelinkedlist/

4/8

22/2/2015

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

CursodeJava:ResolucindelejerciciodeLinkedList
publicclassClase
?
{
publicstaticvoidmain(String[]args)
{
//Atributos
GestionReparacionestaller=newGestionReparaciones();
Stringmatricula1="12345";
Stringmodelo1="Leon";

Stringmatricula2="54321";
Stringmodelo2="Mondeo";

Stringmatricula3="67890";
Stringmodelo3="Laguna";

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

//Aadodosvehiculosaltaller
taller.anadeVehiculo(modelo1,matricula1);
taller.anadeVehiculo(modelo2,matricula2);

//Voyafijarunafechadereparacionaunvehiculoquenoexisteeneltaller,daraerror
taller.reparado(matricula3);

//Estefuncionarabien
taller.reparado(matricula1);

//Estedarerror,noestareparado,porloquenopuedesalir,esunacondicionquehemospuestoenelif
taller.fechaSalidaTaller(matricula2);

}
}

Hasta aqu la solucin del ejercicio. Si habis tenido algn problema, o duda de implementacin, no dudis en
preguntarlo.
VamosconelejemplodelosArrayListdeJava.Vamosahacerunejemplosencilloconlabarajaespaola.
1
importjava.util.*;
?
2
publicclassBaraja
3
{
4
//constantesestticas
5
privatestaticString[]palo={"Bastos","Copas","Oros","Espadas"};
6

7
privatestaticString[]carta={"As","Dos","Tres","Cuatro","Cinco","Seis","Siete","Sota"
8

9
//labarajaesunalistadecartas
10
privateArrayList<String>mazo;
11

12
/**
13
*Constructordelabaraja
14
*/
15
publicBaraja()
16
{
17
mazo=newArrayList<String>(40);
18
for(Stringp:palo){
19
for(Stringc:carta){
20
mazo.add(c+"de"+p);
21
}
22
}
23
}
24

http://www.redeszone.net/2012/03/19/cursodejavaresoluciondelejerciciodelinkedlist/

5/8

22/2/2015

24
25
26
27
28
29
30
31
32
33
34
35
36
37

CursodeJava:ResolucindelejerciciodeLinkedList

/**
*Repartirnumcartas
*/
publicList<String>repartir(intnum)
{

intnumCartas=mazo.size();
List<String>vistaDeMano=mazo.subList(numCartasnum,numCartas);
List<String>mano=newArrayList<String>(vistaDeMano);
vistaDeMano.clear();
returnmano;
}
}

ComopodisverlamecnicadeprogramacinessimilaraladelasLinkedList.
Como el ejercicio anterior que os propusimos tiene mucho juego, os vamos a proponer que en vez de utilizar las
LinkedListparasuprogramacin,loimplementisutilizandolosArrayList.Yenlaprximaentregaloscorregiremosy
hablaremosademsdelasPilasdedatosysusfuncionesycomosepuedenimplementar.

Artculos Relacionados

Las cookies permiten ofrecer los servicios de


RedesZone. Al utilizar nuestros servicios, aceptas
el uso que hacemos de las cookies.
CursodeJava.
Ejemplosde
LinkedList

CursoJava.GUI
VolumenXIX:
Resolucinalejercicio
propuesto

CursoJava.Volumen
XV:Resolucindel
ejerciciopropuesto

Cerrar
CursodeJava.GUI
volumenIX:
Resolucindel
ejerciciopropuesto

Comprtelo.Gracias!

1
Megusta

Twittear

2Comentarios
http://www.redeszone.net/2012/03/19/cursodejavaresoluciondelejerciciodelinkedlist/

6/8

22/2/2015

CursodeJava:ResolucindelejerciciodeLinkedList
29noviembre,2012alas19:07

DomingoA.dice:

Hola,muybuentrabajo!!!Sencillo,directamentealgranoyconmuchosejemplos.Genial!!!
Solamenteuncomentario:
CreoquehaydoserroresenlaclaseFichaVehiculo(lneas35y40)alasignarlasfechasdesaliday
reparacin.Enamboscasossehanasignadoalatributoprivadoentradacuandodeberanasignarsealos
atributossalidayreparacionrespectivamente.
Saludos.
RESPONDER

21agosto,2013alas16:23

CristianMontoyadice:

dijoqueibaacrartreslistas,yosoloveouna,no?
RESPONDER

Dejarunarespuesta
Nombre

Correoelectrnico

Enviarcomentario
nosehaceresponsabledelasopinionesdelosinternautas
Porfavorrevisalaortografayrespetalasnormasdelaweb.
XHTML:Puedesutilizarlossiguientestags:
<ahref=""><b><i><strong>

AcercadeNosotros

Comunicacin

GrupoADSLZone

Contacto

Facebook

ADSLZone

Publicidad

Twitter

ADSLZoneTV

AvisoLegal

Google+

AndroidAyuda

GoogleCurrents

GamerZona

http://www.redeszone.net/2012/03/19/cursodejavaresoluciondelejerciciodelinkedlist/

7/8

22/2/2015

CursodeJava:ResolucindelejerciciodeLinkedList

RSS

HardZone
RedesZone
SoftZone
SmartZona
TabletZona
TestdeVelocidad

RedesZone20102015

http://www.redeszone.net/2012/03/19/cursodejavaresoluciondelejerciciodelinkedlist/

8/8

You might also like