Sunteți pe pagina 1din 15

EJEMPLO 17.

2
import java.util.*;
class Racional implements Comparable
{

private int numerador, denominador;
public Racional()throws Exception
{
this(,!);
"
public Racional(int n, int d) throws Exception
{
numerador # n;
denominador # d;
i$ (denominador ## ) throw new Exception(%&enominador %);
"
public 'trin( to'trin(()
{
return numerador ) %*% ) denominador;
"
public int compare+o(,bject x) ** m-todo del inter$ace
{
Racional r;
r # (Racional) x;
i$ (valorReal() . r.valorReal())
return /!;
else i$ (valorReal() 0 r.valorReal())
return !;
else
return ;
"
private double valorReal()
{
return (double)numerador*(double)denominador;
"
** ...
"
** clase principal, crea los objeto de manera aleatoria,
** se escriben en pantalla, a continuaci1n se ordena, 2 por 3ltimo
** se vuelve a escribir.
public class ,rdenaRacional
{
static int 4R # 5;
public static void main('trin(67 a)
{
Racional 67 ar # new Racional64R7;
tr2 {
** numerador 2 denominador se (enera aleatoriamente
$or (int i # ; i . 4R; i)))
{
int n, d;
n # (int)(4ath.random()* 8! )!);
d # (int)(4ath.random()* 8! )!);
ar6i7 # new Racional(n, d);
"
"
catch (Exception e) {;"
** listado de los objetos creados
'2stem.out.println(% 9ista de numeros racionales: %);
escribe(ar);
** ordenaci1n del arra2
;rra2s.sort(ar);
** listado de los objetos ordenados
'2stem.out.println(% 9ista ordenada de numeros racionales: %);
escribe(ar);
"
static void escribe(Racional 67 r)
{
$or (int i # ; i . r.len(th; i)))
'2stem.out.print(r6i7 ) % %);
'2stem.out.println();
"
"
EJEMPLO 17.3
static $inal int < # !;
int 67 iv # new int6<7;
char 67 cv # new char 6<7;
'trin( 67 sv # new 'trin( 6<7;
** llenado de los arra2s
;rra2s.$ill(iv, , iv.len(th*8, /!);
;rra2s.$ill(iv, iv.len(th*8 )!, iv.len(th /!, !);
;rra2s.$ill(cv, =a=);
;rra2s.$ill(sv, %>aloma%);
EJEMPLO 17.4
public static void main('trin(67 ar(s)
{
int n # !!;
9ist lista!;
** Crea una lista $ormada por n copias de %4ar(a%
lista! # Collections.nCopies(n, %4ar(a%);
'2stem.out.println(lista!);
** Crea una lista de objetos ?nte(er, se ordena 2 se invierte
9ist.?nte(er0 lista8 # new ;rra29ist.?nte(er0();
$or (int i # !; i .# n ; i)))
lista8.add(new ?nte(er((int)(4ath.random()*! )!)));
'2stem.out.println(lista8);
'2stem.out.println(%4@ximo: % ) Collections.max(lista8)
) % At 4Bnimo: % ) Collections.min(lista8));
Collections.sort(lista8);
'2stem.out.println(lista8);
Collections.reverse(lista8);
'2stem.out.println(lista8);
"
EJEMPLO 17.5
import java.util.*;
import java.io.*;
public class >alindromo
{
public static void main('trin(67 ar(s)
{
Cu$$eredReader entrada # new Cu$$eredReader( new
?nput'treamReader('2stem.in));
'tacD.Character0 pila;
'trin( palabra;
boolean pal;
pila # new 'tacD.Character0();
tr2 {
'2stem.out.println(%>alabra o $rase: %);
while ((palabra # entrada.read9ine()) E# null)
{
$or (int i # ; i . palabra.len(th(); i)))
{
pila.push(new Character(palabra.char;t(i)));
"
pal # true;
int i # ;
while (pal FF Epila.empt2())
{
Character G;
G # pila.pop();
pal # G.charHalue() ## palabra.char;t(i)));
"
i$ (pal FF pila.empt2())
'2stem.out.println(palabra ) % es un palBndromo%);
else
'2stem.out.println(palabra ) % no es un palBndromo%);
"
"
catch (Exception e) {;"
"
"
EJEMPLO 17.6
import java.util.*;
import java.io.*;
public class Enumerador>ila
{
public static void main('trin(67 ar(s)
{
$inal int < # I;
'tacD pila # new 'tacD();
'trin( 67 palabra #
{%Jrbion%, %4a(ina%, %;bantos%, %>eralte%, %Citores% ";
$or (int i # ; i . <; i)))
{
int n;
n # (int)(4ath.random()*<*8);
i$ (n . palabra.len(th)
pila.push(palabra6n7);
else i$ (n . <)8)
pila.push(new &ouble(4ath.pow(n, 8)));
else
pila.push(new ?nte(er(n * K));
"
** crea un enumerador de la pila
Enumeration enumera # pila.elements();
** bucle para recorrer la pila
'2stem.out.println(%Elementos de la pila % )
%en el orden establecido por el enumerador:%);
while (enumera.has4oreElements())
{
,bject G;
G # enumera.nextElement();
'2stem.out.print(G ) % %);
"
** bucle para recorrer la pila
'2stem.out.println(%AnElementos de la pila en orden 9?L,:%);
while (Epila.empt2())
{
,bject G;
G # pila.pop();
'2stem.out.print(G ) % %);
"
"
"
EJEMPLO 17.7
class >unto{..."
9ist lista # new ;rra29ist();
?terator iter;
** se llena la lista de objetos >unto
iter # lista.iterator();
while (iter.has<ext())
{
>unto G;
G # (>unto)iter.next();
i$ (G.(etM() . 8 NN G.(etM() 0 !8)
{
'2stem.out.println(%>unto: % ) G ) % se elimina%);
iter.remove();
"
"
9ist.>unto0 lista # new ;rra29ist.>unto0();
?terator.>unto0 iter;
iter # lista.iterator();
while (iter.has<ext())
{
>unto G;
G # iter.next(); ** no es necesario un cast
....
EJEMPLO 17.8
import java.util.*;
import java.io.*;
public class 9ista;rra2
{
public static void main('trin(67 ar(s)
{
Cu$$eredReader entrada # new Cu$$eredReader( new
?nput'treamReader('2stem.in));
9ist av # new ;rra29ist();
'trin( cd;
'2stem.out.println(%&atos de entrada (adios para acabar)%);
tr2 {
do {
cd # entrada.read9ine();
i$ (E cd.eGuals?(noreCase(%adios%))
av.add(cd);
else breaD;
"while (true);

'2stem.out.println(%9ista completa:% ) av);
** elimina una palabra
'2stem.out.println(%>alabra a eliminar: %);
cd # entrada.read9ine();
i$ (av.remove(cd))
'2stem.out.println(%>alabra borrada, lista actual: ) av%);
else
'2stem.out.println(%<o esta en la lista la palabra%);
** reemplaOa elemento Gue est@ en el centro
av.set(av.siOe()*8, %<uevaCadena%);
'2stem.out.println(%9ista completa:% ) av);
** busGueda de una palabra
'2stem.out.println(%C3sGueda de una palabra: %);
cd # entrada.read9ine();
int D # av.index,$(cd);
** crea iterador 2 recorre la lista hacia adelante
i$(D 0# )
{
'2stem.out.println(%Recorre la lista a partir de D: %)D);
9ist?terator ls # av.list?terator(D);
while(ls.has<ext())
{
'2stem.out.print(('trin()ls.next() ) % %);
"
"
"
catch(Exception e) {;"
"
"
EJEMPLO 17.9
import java.util.*;
import java.io.*;
class Cola
{
private 9inDed9ist.Character0 GG;
public Cola ()
{
GG # new 9inDed9ist.Character0 ();
"
public boolean colaHacia()
{
return GG.isEmpt2();
"
public void insertar(Character elemento)
{
GG.add9ast(elemento);
"
public Character Guitar()throws Exception
{
return GG.removeLirst();
"
public void borrarCola()
{
GG.clear();
"
public Character $renteCola() throws Exception
{
return GG.(etLirst();
"
"
class >ila
{
private 9inDed9ist.Character0 pila;
public >ila()
{
pila # new 9inDed9ist.Character0 ();
"
public boolean pilaHacia()
{
return pila.isEmpt2();
"
public void insertar(Character elemento)
{
pila.addLirst(elemento);
"
public Character Guitar()throws Exception
{
return pila.removeLirst();
"
public void limpiar>ila()
{
pila.clear();
"
public Character cima>ila() throws Exception
{
return pila.(etLirst();
"
"
public class capicuaCola
{
public static void main('trin(67 ar(s)
{
Cu$$eredReader entrada # new Cu$$eredReader( new
?nput'treamReader('2stem.in));
'trin( cd;
tr2 {
do {
'2stem.out.println(%<umero a probar si es capicua %);
cd # entrada.read9ine();
i$ (E esCapicua(cd))
'2stem.out.println(cd ) % <o es capicua%);
else
{
'2stem.out.println(cd )
% es capicua, $in del pro(rama%);
breaD;
"
" while (true);
"
catch(Exception e) {;"
"
static boolean esCapicua('trin( nm) throws Exception
{
Cola G # new Cola();
>ila pila # new >ila();
$or (int i # ; i . nm.len(th(); i)))
{
G.insertar(new Character(nm.char;t(i)));
pila.insertar(new Character(nm.char;t(i)));
"
boolean es # true;
while (es FF EG.colaHacia())
{
Character c!, c8;
c! # G.Guitar();
c8 # pila.Guitar();
es # es FF (c!.eGuals(c8));
"
return es;
"
"
EJEMPLO 17.10
import java.util.*;
public class ConjPash
{
public static void main('trin(67 ar(s)
{
ConjPash a;
Pash'et cn8, cn!;
a # new ConjPash();
cn8 # a.creaConj();
'2stem.out.println(%Conjunto cn8: % ) cn8);
cn! # a.creaConj();
'2stem.out.println(%Conjunto cn!: % ) cn!);
** union de conjuntos
Pash'et union;
union # (Pash'et)cn8.clone();
union.add;ll(cn!);
'2stem.out.print(%cn8 ) cn!: %);
a.iteraConj(union);
** di$erencia de conjuntos
Pash'et di$;
di$ #(Pash'et) cn8.clone();
di$.remove;ll(cn!);
'2stem.out.print(%cn8 / cn!: %);
a.iteraConj(di$);
** intersecci1n de conjuntos
Pash'et inter;
inter # (Pash'et)cn8.clone();
inter.retain;ll(cn!);
'2stem.out.print(%cn8 * cn!: %);
a.iteraConj(inter);
"
public void iteraConj('et cnj)
{
?terator ic;
?nte(er G;
ic # cnj.iterator();
while (ic.has<ext())
{
G # (?nte(er) ic.next();
'2stem.out.print(G ) % %);
"
'2stem.out.println();
"
public Pash'et creaConj()
{
Pash'et G # new Pash'et();
int n # (int)(4ath.random()*5 )K);
$or (int i # ; i . n; i)))
{
boolean s;
?nte(er e # (int)(4ath.random()*!5 )K);
?nte(er r # new ?nte(er(e);
s # G.add(r);
i$ (Es) '2stem.out.println(e ) % repetido%);
"
return G;
"
"
EJEMPLO 17.11
import java.util.*;
class Compara implements Comparator
{
public int compare (,bject x!, ,bject x8)
{
'trin( c! # ('trin() x!;
'trin( c8 # ('trin() x8;
c! # c!.toJpperCase();
c8 # c8.toJpperCase();
return c!.compare+o(c8);
"
"
public class Conj,rdenado
{
public static void main('trin(67 ar(s)
{

'trin( 67 cad! # {%9ibro%, %4esa%, %mes%, %>apel%, %>apelera%,
%armario%, %(lobo%";
'trin( 67 cad8 # {%lupi%, %4aria%, %an(ela%, %Qulian%,
%EsperanOa%, %4i(uel%, %maite%, %marta%";

+ree'et cor!, cor8;
cor! # new +ree'et();
cor8 # new +ree'et(new Compara());

$or (int i # ; i . cad!.len(th; i)))
cor!.add(cad!6i7);
$or (int i # ; i . cad8.len(th; i)))
cor8.add(cad86i7);
'2stem.out.println(%Conjunto ordenado, sin comparador: %
) cor!);
'2stem.out.println(%Conjunto ordenado, con comparador: %
) cor8);
** eliminar un elemento
i$ (cor!.remove(%4es%))
'2stem.out.println(%Eliminado / 4es / de conjunto ! %
) cor!);
else
'2stem.out.println(%<o se encuentra / 4es / en conjunto ! %
) cor!);

i$ (cor8.remove(%4;?+E%))
'2stem.out.println(%Eliminado / 4;?+E / de conjunto 8 %
) cor8);
else
'2stem.out.println(%<o se encuentra / 4;?+E / en conjunto 8
% ) cor8);
** ,btener un subconjunto 2 operaciones
'et sc!;
sc! # cor!.sub'et(%9ibro%, %armario%);
'2stem.out.println(%'ubconjunto : % ) sc!);
sc!.add(%4arta%);
'2stem.out.println(%'ubconjunto modi$icado: % ) sc!);
'2stem.out.println(%Conjunto ori(en modi$icado: % ) cor!);
cor!.add(%lupi%); cor!.add(%9una%);
'2stem.out.println(%'ubconjunto modi$icado: % ) sc!);
'2stem.out.println(%Conjunto ori(en modi$icado: % ) cor!);
** ,peraciones al(ebraicas: uni1n 2 di$erencia
+ree'et union # (+ree'et)cor8.clone();
union.add;ll(cor!);
'2stem.out.println(%cor8 ) cor!: % ) union);
+ree'et di$ # (+ree'et)cor8.clone();
di$.remove;ll(cor!);
'2stem.out.println(%cn8 / cn!: % ) di$);
"
"
EJEMPLO 17.12
import java.util.*;
public class &icPas+ab
{
public static void main('trin(67 ar(s)
{

'trin( 67 ciclo # {%9ansen%, %4essaria%, %Ripolles%, %Raritten%,
%&el(ado%,%Sloster%, %Custaria%, %;nimador%,
%'anroma%, %Quliani%";
double 67 tiempo # {TU.T, U.T, T5., TV., U!.8, TW., TI.,
TU.W, U8.K, UK.8U";
Pashtable tab # new Pashtable();
** inserta los elementos en la tabla
$or (int i # ; i . ciclo.len(th; i)))
tab.put(new &ouble(tiempo6i7), ciclo6i7);
'2stem.out.println(%+abla hash creada: % ) tab);
** b3sGueda por clave
i$ (tab.containsSe2(new &ouble(TW.)))
'2stem.out.println(%Corredor encontrado: % )
tab.(et(new &ouble(TW.)));
else
'2stem.out.println(%Clave no est@ en la tabla%);
** elimina un elemento
,bject G # tab.remove(new &ouble(TU.W));
i$ (G E# null) '2stem.out.println(%Elemento % )
G ) % eliminado%);
** Conjunto de claves
'et cv;
cv # tab.De2'et();
'2stem.out.println(%Conjunto de claves: % ) cv);
** Enumeraci1n de valores
Enumeration en;
en # tab.elements();
'2stem.out.print(%Ciclistas(valores): % );
while (en.has4oreElements())
{
'2stem.out.print(en.nextElement());
i$ (en.has4oreElements()) '2stem.out.print(%, %);
"
'2stem.out.println();
"
"
EJEMPLO 17.13
import java.util.*;
public class 4apaJniv
{
public static void main('trin(67 ar(s)
{

'trin( 67 univ # {%Ramiro%, %4elendeO%, %'antos%, %;rmando%,
%&el(ado%, %4artina%, %Cueno%, %;lonso ;%, %'amuel%, %Qulian%";
4ap mp;
mp # new Pash4ap(!W); ** mapa vacBo de capacidad inicial !W
$or (int i # ; i . univ.len(th; i)))
{
int matricula;
matricula # (int)(4ath.random()*VV )!);
i$ (E mp.containsSe2(matricula))
mp.put(new ?nte(er(matricula), univ6i7);
else i//;
"
'2stem.out.println(%4apa creado: % ) mp);
** ?terador del conjunto de claves
'et cv;
cv # mp.De2'et();
?terator it # cv.iterator();
'2stem.out.println(%Recorre el 4apa con iterador de claves. %);
while (it.has<ext())
{
,bject clave;
clave # it.next();
'2stem.out.print(%(% ) clave ) %,% ) mp.(et(clave) ) %)%);
i$ (it.has<ext()) '2stem.out.print(%, %);
"
'2stem.out.println();
** cambio del valor de un elemento
'et cel # mp.entr2'et();
?terator ite # cel.iterator();
'2stem.out.println(%Cambio de primera clave. %);
4ap.Entr2 elemento # (4ap.Entr2)ite.next();
'2stem.out.println(%Halor elemento:% ) elemento.(etHalue()
) %, clave: % ) elemento.(etSe2());
elemento.setHalue(%Xacarias%);
'2stem.out.println(%4apa modi$icado: % ) mp);
"
"
EJEMPLO 17.14
import java.util.*;
public class 4apa,rdenado
{
public static void main('trin(67 ar(s)
{
'trin( 67 montan #
{%+eleno%, %4elarita%, %,cejon%, %>eYahueca%, %;lmanara%,
%,cenillo%, %Custarano%, %Reinosa%, %Jrbieta%, %Zalarita%";
int 67 alto #
{!5IV, !8KU, !IV, 88!!, 88, !5I, !TU, 8U5, !T5I, 8!";
+ree4ap mapa;

mapa # new +ree4ap(); ** mapa vacBo
$or (int i # ; i . montan.len(th; i)))
mapa.put(montan6i7, new ?nte(er(alto6i7));
'2stem.out.println(%At 4apa creado An% ) mapa);

'orted4ap su!, su8, suK;
su! # mapa.sub4ap(%C%, %R%); ** desde =C= hasta =R= (exclusive)
'2stem.out.println(%At 'ubmapa en el ran(o 6C ... R) An% ) su!);
su8 # mapa.head4ap(%R%); ** claves menores Gue =R=
'2stem.out.println(%At 'ubmapa de claves menores Gue R An% )
su8);
suK # mapa.tail4ap(%R%); ** claves ma2ores o i(uales Gue =R=
'2stem.out.println(%At 'ubmapa de claves ma2ores Gue R An% )
suK);

'2stem.out.println(%Corra primer elemento: % )
mapa.remove(mapa.$irstSe2())); ** borra el primer elemento
'2stem.out.println(%At 4apa actual An% ) mapa);
"
"

S-ar putea să vă placă și