Guia Java - Lab131
Guia Java - Lab131
TIPOS DE DATOS
CONTENIDO
1 ENTRADA Y SALIDA DE DATOS EN JAVA 5
1.1 ENTRADA Y SALIDA POR FLUJOS (JAVA.UTIL.SCANNER) 5
1.2 LECTURA DE LINEAS JAVA.UTIL.SCANNER 5
1.3 MANEJO DE LA LECTURA DE LINEAS (JAVA.UTIL.SCANNER) 6
1.4 ENTRADA DE DATOS HASTA EL FIN DE ARCHIVO (JAVA.UTIL.SCANNER) 6
1.5 IMPRESIÓN DE NUMEROS ENTEROS CON PRINTF 7
1.6 MANIPULACION DE LA COMA FLOTANTE CON PRINTF 7
1.7 PRECISION DE COMA FLOTANTE CON PRINTF 7
1.8 CAMPO DE IMPRESION Y ALINEACION CON PRINTF 8
1.9 IMPRESIÓN DE CADENAS Y CARACTERES CON PRINTF 8
1.10 LECTURA DE DATOS MEDIANTE BUFFEREDREADER 8
1.11 LECTURA Y ESCRITURA DE ARCHIVOS 9
2 LIBRERIAS DE MATEMATICAS 10
2.1 FUNCIONES DE JAVA.LANG.MATH 10
2.1.1 FUNCIONES TRIGONOMETRICAS 10
2.1.2 FUNCIONES HIPERBOLICAS 10
2.1.3 FUNCIONES EXPONENCIALES Y LOGARITMICAS 10
2.1.4 FUNCIONES DE POTENCIA 11
2.1.5 FUNCIONES DE REDONDEO 11
2.1.6 FUNCIONES DE VALOR ABSOLUTO 11
2.1.7 NUMEROS ALEATORIOS 11
2.1.8 MIN Y MAX 11
2.2 JAVA BIGINTEGER 12
2.2.1 CONSTRUCTORES Y ASIGNACION DE BIGINTEGER 12
2.2.2 OPERACIONES ARITMETICAS 12
2.2.3 OPERACIONES A NIVEL DE BITS 14
2.2.4 COMPARACION DE BIGINTEGERS 15
2.2.5 VALORES MAXIMOS Y MINIMOS 15
2.2.6 TRANSFORMACION DE BIGINTEGERS A VALORES NUMERICOS Y CADENAS 16
2.2.7 FIBONACCI Y FACTORIAL 16
2.3 JAVA BIGDECIMAL 17
2.3.1 CONSTRUCTORES Y ASIGNACION DE BIGINTEGER 17
2.3.2 OPERACIONES ARITMETICAS 18
2.3.3 OPERACIONES DE COMA FLOTANTE 20
2.3.4 COMPARACION DE BIGDECIMALS 21
2.3.5 VALORES MAXIMOS Y MINIMOS 21
2.3.6 TRANSFORMACION DE BIGDECIMALS A VALORES NUMERICOS Y CADENAS 22
2.3.7 HERRAMIENTAS DE MATHCONTEXT 23
3 CADENAS Y CARACTERES 24
3.1 LA CLASE STRING 24
3.1.1 CONSTRUCTORES DE STRING 24
3.1.2 CONCATENACION Y ASIGNACION DE CADENAS 24
3.1.3 REEMPLAZO DE CADENAS 24
3.1.4 LONGITUD DE CADENAS 25
3.1.5 SUBCADENAS 25
3.1.6 LOCALIZACION DE SECUENCIAS DE CARACTERES 26
3.1.7 COMPARACION DE STRINGS 26
3.2 CLASE STRING BUILDER 27
3.2.1 CONSTTRUCTORES 27
3.2.2 CONCATENACION DE CADENAS 27
3.2.3 INSERCCION Y ELIMINACION DE CARACTERES 28
3.2.4 REEMPLAZO DE SECUENCIA DE CARACTERES 29
3.2.5 LONGITUD DE CADENAS 29
3.2.6 SUBCADENAS 29
3.2.7 LOCALIZACION DE SECUENCIAS DE CARACTERES Y METODO REVERSE 30
3.2.8 COMPARACION DE STRINGBUILDER 30
3.3 CARACTERES 31
3.3.1 OBTENCION DE UN CHAR [] A PARTIR DE UNA CADENA 31
3.3.2 OBTENCION DE CARACTERES 31
3.3.3 CLASIFICACION DE CARACTERES 32
3.3.4 CONVERSIONES DE CARACTERES DE MAYUSCULA A MINUSCULA 33
3.4 CONVERSION DE CADENAS 33
José Gonzalo Espejo Cuba 3
GUIA DE JAVA
4 VECTORES Y MATRICES 36
4.1 CREACION DE VECTORES Y MATRICES 36
4.1.1 CREACION DE VECTORES 36
4.1.2 CREACION DE MATRICES 36
4.2 METODOS GENERICOS 37
6 CONTENEDORES DE JAVA 46
6.1 VECTORS (VECTORES) 46
6.1.1 INSERCCION DE ELEMENTOS 46
6.1.2 ELIMINACION DE DATOS DEL VECTOR 47
6.1.3 REEMPLAZO DE DATOS EN UN VECTOR 48
6.1.4 CAPACIDAD Y TAMAÑO DEL VECTOR 48
6.1.5 ELEMENTOS DEL VECTOR 49
6.1.6 COMPARACION Y BUSQUEDA DE SECUENCIA DE DATOS 50
6.2 STACKS (PILAS) 51
6.3 QUEUES (COLAS) 51
6.4 COLA DE PRIORIDADES 52
6.4.1 COLA DE PRIORIDADES DE DATOS PRIMITIVOS 52
6.4.2 COLA DE PRIORIDADES DE CLASES 52
6.5 DEQUES (BICOLAS) 54
6.6 LISTAS 56
6.6.1 INSERCCION DE DATOS EN LAS LISTAS 56
6.6.2 ELIMINACION DE DATOS DE LA LISTA 56
6.6.3 REEMPLAZO DE DATOS EN LA LISTA 57
6.6.4 CAPACIDAD Y TAMAÑO DE LA LISTA 58
6.6.5 ELEMENTOS DE LA LISTA 58
6.6.6 BUSQUEDA Y COMPARACION DE SECUENCIA DE DATOS 59
6.7 CONJUNTOS 60
6.7.1 INSERCCION DE DATOS 60
6.7.2 ELIMINACION DE DATOS 61
6.7.3 CAPACIDAD Y TAMAÑO DEL CONJUNTO 62
6.7.4 BUSQUEDA Y COMPARACION DE SECUENCIA DE DATOS 62
6.8 MAPAS 63
6.8.1 INSERCCION DE DATOS 63
6.8.2 ELIMINACION DE DATOS 64
6.8.3 CAPACIDAD Y TAMAÑO DEL MAPA 65
6.8.4 BUSQUEDA DE DATOS 65
7 ALGORITMOS DE JAVA 67
7.1 ALGORITMO ADDALL 67
7.2 ALGORITMO DE BUSQUEDA BINARIA (BINARY SEARCH) 67
7.2.1 BYNARY SEARCH DE LA CLASE ARRAY 67
7.2.2 BYNARY SEARCH DE LA CLASE COLLECTIONS 68
7.3 ALGORITMOS DE COPIA 68
7.3.1 ALGORITMOS COPY EN LA CLASE COLLECTIONS 68
7.3.2 ALGORITMOS COPY EN LA CLASE ARRAYS 69
7.4 ALGORITMO DISJOINT 69
4 José Gonzalo Espejo Cuba
GUIA DE JAVA
8 MISCELANEA 78
8.1 SECUENCIA FOR MEJORADA 78
8.1.1 FOR DE ARRAYS 78
8.1.2 FOR DE COLLECTIONS 78
8.2 EXCEPCIONES 78
8.2.1 EXCEPCION EN LA LECTURA DE ENTEROS 78
8.2.2 EXCEPCION EN DIVISION ENTRE CERO 78
8.2.3 ESTRUCTURA GENERAL DE UN PROGRAMA CON EXCEPCION 79
8.3 MANEJO DEL TIEMPO EN JAVA 79
8.3.1 JAVA DATE 79
8.3.2 JAVA CALENDAR 81
8.3.3 GREGORIAN CALENDAR 83
8.4 OTROS METODOS DE REDONDEO 83
8.4.1 DECIMAL FORMAT 83
8.4.2 REDONDEO CON BIGDECIMAL 83
8.4.3 REDONDEO CON JAVA.LANG.MATH 84
8.5 LIMITES DE TIPOS DE DATOS PRIMITIVOS 84
8.6 TRANSFORMACION DE DATOS PRIMITIVOS A BINARIO, OCTAL Y HEXADECIMAL 84
8.7 OPERACIONES DE BITS 85
8.8 PLANTILLA PARA COMPETENCIAS 85
José Gonzalo Espejo Cuba 5
GUIA DE JAVA
//DECLARANDO VARIABLES
//NUMEROS ENTEROS
byte num1;//Numero entero byte
short num2;//Numero entero short
int num3;//Numero entero int
long num4;//Numero entergo long
//NUMEROS REALES
float realf;
double reald;
//CADENAS
String cadena;
//LECTURA DE DATOS
System.out.println("Introduzca cuatro numeros enteros");//Impresion de mensaje
num1=leer.nextByte();//Lectura de un numero de tipo byte
num2=leer.nextShort();//Lectura de un numero de tipo short
num3=leer.nextInt();//Lectura de un numero de tipo int
num4=leer.nextLong();//Lectura de un numero de tipo long
System.out.println("Introduzca dos numeros reales");//Impresion de mensaje
realf=leer.nextFloat();//Lectura de un numero de tipo float
reald=leer.nextDouble();//Lectura de un numero de tipo double
System.out.println("Introduzca una cadena");//Impresion de mensaje
cadena=leer.next();//Lectura de una cadena
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BR {
/*PROGRAMA QUE LEE TRES NUMEROS ENTEROS Y LOS SUMA*/
static String leerdato(){
BufferedReader entrada=new BufferedReader(new InputStreamReader(System.in));
String dato="";
try{
dato=entrada.readLine();
}
catch(IOException e){};
return dato;
}
public static void main(String args[]){
BR lectura=new BR();
int a,b,c;
a=Integer.parseInt(lectura.leerdato());//Transformamos a entero
b=Integer.parseInt(lectura.leerdato());//Transformamos a entero
c=Integer.parseInt(lectura.leerdato());//Transformamos a entero
System.out.println("La suma es: "+(a+b+c));
José Gonzalo Espejo Cuba 9
GUIA DE JAVA
}
}
Precaución, la lectura de los datos de este programa, es un dato por linea. Tener cuidado cuando se trata de leer dos o mas
datos en un sola línea.
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;
public class Lectura_escritura_archivos {
/**
Programa que lee un archivo de entrada, este archivo tiene en cada linea dos
enteros; Despues de leer los enteros suma los dos numeros y almacena la suma en un
archivo de salida
*/
static Scanner entrada;//Objeto para leer el archivo de entrada
static DataOutputStream salida;//Objeto para escribir el archivo de salida
//Metodo para leer el archivo de entrada
static void LeerArchivo(){
try{//Busca el archivo y lo lee
entrada=new Scanner(new File("F:/input.txt"));
}
catch(FileNotFoundException file){
System.err.println("Error al abrir el archivo");
System.exit(1);
}
}
//Metodo para escribir el archivo de entrada
static void EscribirArchivo(String cad){
try{
salida=new DataOutputStream(new FileOutputStream("F:/output.txt"));
salida.writeBytes(cad);
}
catch(IOException e){
System.out.println("Error al escribir en el archivo");
}
}
public static void main(String[] args) {
int a,b;
LeerArchivo();
String respuesta="";
while(entrada.hasNext()){
a=entrada.nextInt();
b=entrada.nextInt();
//Almacenamos las respuestas en una cadena
respuesta=respuesta+Integer.toString(a+b)+"\n";
}
EscribirArchivo(respuesta);//La cadena estara escrita en el archivo de salida
}
}
10 José Gonzalo Espejo Cuba
GUIA DE JAVA
2 LIBRERIAS DE MATEMATICAS
System.out.println("FUNCION COSENO");
System.out.printf("coseno en grados: %.5f\n",Math.cos(num*pi/180));//0,70711
System.out.printf("coseno en radianes: %.5f\n",Math.cos(num));//0,52532
System.out.println("\nFUNCION SENO");
System.out.printf("seno en grados: %.5f\n",Math.sin(num*pi/180));//0,70711
System.out.printf("seno en radianes: %.5f\n",Math.sin(num));//0,85090
System.out.println("\nFUNCION TANGENTE");
System.out.printf("tangente en grados: %.5f\n",Math.tan(num*pi/180));//1,00000
System.out.printf("tangente en radianes: %.5f\n",Math.tan(num));//1,61978
num=0.1224;
System.out.println("\nFUNCION ARCO COSENO");
System.out.printf("arco-coseno en grados: %.5f\n",Math.acos(num)*180/pi);//82,96937
System.out.printf("arco-coseno en radianes: %.5f\n",Math.acos(num));//1,44809
System.out.println("\nFUNCION EXP");
System.out.printf("Exponencial de %d: %.5f\n",8,Math.exp(8));//2980,95799
System.out.println("\nFUNCION GETEXP");
José Gonzalo Espejo Cuba 11
GUIA DE JAVA
System.out.printf("2^%d=%d\n",Math.getExponent(8),8);//2^3=8
System.out.printf("2^%d=%d\n",Math.getExponent(17),17);//2^4=17
System.out.printf("2^%d=%d\n",Math.getExponent(32),32);//2^5=32
System.out.println("\nFUNCION LOG");
System.out.printf("Logaritmo natural de %d: %.5f\n",8,Math.log(8));//2,07994
System.out.println("\nFUNCION LOG10");
System.out.printf("Logaritmo en base 10 de %d: %.5f\n",8,Math.log10(8));//0,90309
}
}
System.out.println("\nMIN");
System.out.println("El menor de 5 y 7 es: "+Math.min(5, 7));// 5
System.out.println("El menor de 2.56 y 2.55 es: "+Math.min(2.56, 2.55));// 2.55
}
}
//CREACION DE BIGINTEGER
b1=new BigInteger("39992278782225436547665732323554656");
b3=b4=b5=b6=new BigInteger("0");
//ASIGNACION DR BIGINTEGER
b2=b1;//Asignando b1 a biginteger b2;
b3=b3.valueOf(24354);//Asignado un numero entero a b3
b4=b4.ZERO;//Asignado 0 a b4
b5=b5.ONE;//Asignado 1 a b5
b6=b6.TEN;//Asignado 10 a b6
//MOSTRANDO DATOS
System.out.println(b1);//Muestra: 39992278782225436547665732323554656
System.out.println(b2);//Muestra: 39992278782225436547665732323554656
System.out.println(b3);//Muestra: 24354
System.out.println(b4);//Muestra: 0
System.out.println(b5);//Muestra: 1
System.out.println(b6);//Muestra: 10
}
}
BigInteger b Declara un objeto BigInteger b.
b=new BigInteger("554656") Crea un objeto BigInteger b que contiene un valor numérico, su constructor recibe
un parámetro de cadena numérica para inicializar el BigInteger b.
B1=B2 Donde B1 y B2 son objetos BigInteger, el operador de asignación = asigna el valor
de B2 a B1.
valueOf(num) Donde num es un número entero. La función valueOf retorna un BigInteger que
tiene el valor de num.
ZERO Retorna un BigInteger que tiene el valor de 0.
ONE Retorna un BigInteger que tiene el valor de 1.
TEN Retorna un BigInteger que tiene el valor de 10.
b1=new BigInteger("48");
b2=new BigInteger("56");
b3=new BigInteger("23");
//SUMA DE BIGINTEGER
suma=b1.add(b2);
//RESTA DE BIGINTEGER
resta=b1.subtract(b2);
//VALOR ABSOLUTO
va=resta.abs();
//PRODUCTO
producto=b1.multiply(b2);
//DIVISION
division=b2.divide(b1);
//MODULO
residuo=b2.mod(b1);//tambien b2.remainder(b1)
//MAXIMO COMUN DIVISOR
gcd=b2.gcd(b1);
//POTENCIA
potencia=b1.pow(3);//Elevando b1 a 3
//VALOR NEGATIVO
negativo=b1.negate();
System.out.println(suma);//Muestra: 104
System.out.println(resta);//Muestra: -8
System.out.println(va);//Muestra: 8
System.out.println(producto);//Muestra: 2688
System.out.println(division);//Muestra: 1
System.out.println(residuo);//Muestra: 8
System.out.println(gcd);//Muestra: 8
System.out.println(potencia);//Muestra: 110592
System.out.println(negativo);//Muestra: -48
B1.gcd(B2) Donde B1 y B2 son objetos BigInteger, la función gcd devuelve un BigInteger que es el
máximo común divisor.
B.pow(n) Donde B es un objeto BigInteger y n es un numero entero, la función pow devuelve un
BigInteger que es la potencia: B ^ n.
B.negate() Donde B es un objeto BigInteger, la función negate devuelve un BigInteger que es el valor
negativo de B.
isProbablePrime(cert) Donde cert es la certeza, la función isProbablePrime devuelve true (verdadero) si el
BigInteger es primo, caso contrario devuelve false (falso), cuando cert es menor o igual a 0,
la respuesta será true.
if(b1.compareTo(b2)==0)
System.out.println("Los BigIntegers b1 y b2 son iguales");
else
System.out.println("Los BigIntegers b1 y b2 son diferentes");
//Muestra: Los BigIntegers b1 y b2 son iguales
if(b1.equals(b2))
System.out.println("Los BigIntegers b1 y b2 son iguales");
else
System.out.println("Los BigIntegers b1 y b2 son diferentes");
//Muestra: Los BigIntegers b1 y b2 son iguales
System.out.println("Compare de b1 y b3: "+b1.compareTo(b3));//-1
System.out.println("Compare de b3 y b1: "+b3.compareTo(b1));//1
}
}
B1.compareTo(B2) Donde B1 y B2 son objetos BigInteger, la función compareTo devuelve un entero tal que:
0: Significa que B1 y B2 son iguales.
1: Significa que B1 es mayor que B2.
-1: Significa que B1 es menor que B2.
B1.equals(B2) Donde B1 y B2 son objetos BigInteger, la función equals devuelve true (verdadero) si B1 y B2
son iguales. Caso contrario devuelve false (falso).
import java.math.BigInteger;
public class biginteger_max_min {
public static void main(String args[]){
BigInteger b1=new BigInteger("456");
16 José Gonzalo Espejo Cuba
GUIA DE JAVA
import java.math.BigInteger;
public class biginteger_to_values {
public static void main(String args[]){
BigInteger b=new BigInteger("124");
byte num_byte=b.byteValue();//Transformando a un entero byte
short num_short=b.shortValue();//Transformando a un entero short
int num_int=b.intValue();//Transformando a un entero int
long num_long=b.longValue();//Transformando a un entero long
float num_realf=b.floatValue();//Transformando a un real float
double num_reald=b.doubleValue();//Transformando a un real double
String cadena=b.toString();//Transformando a una cadena
System.out.println(num_byte);//Muestra: 124
System.out.println(num_short);//Muestra: 124
System.out.println(num_int);//Muestra: 124
System.out.println(num_long);//Muestra: 124
System.out.println(num_realf);//Muestra: 124.0
System.out.println(num_reald);//Muestra: 124.0
System.out.println(cadena);//Muestra: 124
}
}
byteValue() Retorna un entero de tipo byte.
shortValue() Retorna un entero de tipo short.
intValue() Retorna un entero de tipo int.
longValue() Retorna un entero de tipo long.
floatValue() Retorna un real de tipo float.
doubleValue() Retorna un real de tipo double.
toString() Retorna una cadena de tipo String.
F[1]=new BigInteger("1");
for(int i=2;i<max;i++)
F[i]=F[i-2].add(F[i-1]);//Realiza la suma
}
/*
* Metodo para generar el factorial de un numero n
* Factorial es aquel numero que cumple: n!=(n)*(n-1)*(n-2)*...*3*2*1
* En c/c++ y java el maximo numero factorial que se puede generar es 20
con el tipo de dato long long en c/c++ y long en JAVA
*/
public static BigInteger factorial(int n){
BigInteger facto,inc;
facto=new BigInteger("1");
for(int i=1;i<=n;i++){
inc=new BigInteger(Integer.toString(i));
facto=facto.multiply(inc);
}
return facto;
}
//CREACION DE BIGDECIMAL
b1=new BigDecimal("0.00039992278782225436547665732323554656");
b3=b4=b5=b6=new BigDecimal("0");
//ASIGNACION DR BIGDECIMAL
b2=b1;//Asignando b1 a bigdecimal b2;
b3=b3.valueOf(0.000000024354);//Asignado un número real a b3
b4=b4.ZERO;//Asignado 0 a b4
b5=b5.ONE;//Asignado 1 a b5
b6=b6.TEN;//Asignado 10 a b6
//MOSTRANDO DATOS
System.out.println(b1);//Muestra: 0.00039992278782225436547665732323554656
System.out.println(b2);//Muestra: 0.00039992278782225436547665732323554656
System.out.println(b3);//Muestra: 2.4354E-8
System.out.println(b4);//Muestra: 0
System.out.println(b5);//Muestra: 1
System.out.println(b6);//Muestra: 10
}
}
BigDecimal b Declara un objeto BigDecimal b.
b=new BigDecimal ("0.01") Crea un objeto BigDecimal b que contiene un valor numérico, su constructor recibe
una parámetro de cadena para inicializar el BigDecimal b.
B1=B2 Donde B1 y B2 son objetos BigDecimal, el operador de asignación = asigna el valor
de B2 a B1.
valueOf(num) Donde num es un número real. La función valueOf retorna un BigDecimal que tiene
el valor de num.
ZERO Retorna un BigDecimal que tiene el valor de 0.
18 José Gonzalo Espejo Cuba
GUIA DE JAVA
//SUMA
suma1=b1.add(b2);//Sin limite de digitos
suma2=b1.add(b2, MathContext.DECIMAL32);//7 digitos
suma3=b1.add(b2, MathContext.DECIMAL64);//16 digitos
suma4=b1.add(b2, MathContext.DECIMAL128);//34 digitos
suma5=b1.add(b2, MathContext.UNLIMITED);//Sin limite de digitos
//RESTA
resta1=b1.subtract(b2);//Sin limite de digitos
resta2=b1.subtract(b2, MathContext.DECIMAL32);//7 digitos
resta3=b1.subtract(b2, MathContext.DECIMAL64);//16 digitos
resta4=b1.subtract(b2, MathContext.DECIMAL128);//34 digitos
resta5=b1.subtract(b2, MathContext.UNLIMITED);//Sin limite de digitos
//VALOR ABSOLUTO
va1=resta1.abs();//Sin limite de digitos
va2=resta1.abs(MathContext.DECIMAL32);//7 digitos
va3=resta1.abs(MathContext.DECIMAL64);//16 digitos
va4=resta1.abs(MathContext.DECIMAL128);//34 digitos
va5=resta1.abs(MathContext.UNLIMITED);//Sin limite de digitos
//PRODUCTO
prod1=b1.multiply(b2);//Sin limite de digitos
prod2=b1.multiply(b2, MathContext.DECIMAL32);//7 digitos
prod3=b1.multiply(b2, MathContext.DECIMAL64);//16 digitos
prod4=b1.multiply(b2, MathContext.DECIMAL128);//34 digitos
prod5=b1.multiply(b2, MathContext.UNLIMITED);//Sin limite de digitos
//DIVISION
div1=b1.divide(b2, MathContext.DECIMAL32);//7 digitos
div2=b1.divide(b2, MathContext.DECIMAL64);//16 digitos
div3=b1.divide(b2, MathContext.DECIMAL128);//34 digitos
div4=b1.divideToIntegralValue(b2);//Parte entera de la division
//POTENCIA
pot1=b1.pow(3);//Sin limite de digitos
pot2=b1.pow(3, MathContext.DECIMAL32);//7 digitos
pot3=b1.pow(3, MathContext.DECIMAL64);//16 digitos
pot4=b1.pow(3, MathContext.DECIMAL128);//34 digitos
pot5=b1.pow(3, MathContext.UNLIMITED);//Sin limite de digitos
//MODULO
resid1=b1.remainder(b2);//Sin Limites
resid2=b1.remainder(b2, MathContext.DECIMAL32);//7 digitos
resid3=b1.remainder(b2, MathContext.DECIMAL64);//16 digitos
resid4=b1.remainder(b2, MathContext.DECIMAL128);//34 digitos
resid5=b1.remainder(b2, MathContext.UNLIMITED);//Sin Limites
//NEGATIVO
b1=b1.negate();
System.out.println(suma1);//Muestra: 53857544.31608104448597890899
José Gonzalo Espejo Cuba 19
GUIA DE JAVA
System.out.println(suma2);//Muestra: 5.385754E+7
System.out.println(suma3);//Muestra: 53857544.31608104
System.out.println(suma4);//Muestra: 53857544.31608104448597890899
System.out.println(suma5);//Muestra: 53857544.31608104448597890899
System.out.println(resta1);//Muestra: 42608833.77519422444537890853
System.out.println(resta2);//Muestra: 4.260883E+7
System.out.println(resta3);//Muestra: 42608833.77519422
System.out.println(resta4);//Muestra: 42608833.77519422444537890853
System.out.println(resta5);//Muestra: 42608833.77519422444537890853
System.out.println(va1);//Muestra: 42608833.77519422444537890853
System.out.println(va2);//Muestra: 4.260883E+7
System.out.println(va3);//Muestra: 42608833.77519422
System.out.println(va4);//Muestra: 42608833.77519422444537890853
System.out.println(va5);//Muestra: 42608833.77519422444537890853
System.out.println(prod1);//Muestra: 271280591019125.3792512347368306593102832093749341490148
System.out.println(prod2);//Muestra: 2.712806E+14
System.out.println(prod3);//Muestra: 271280591019125.4
System.out.println(prod4);//Muestra: 271280591019125.3792512347368306593
System.out.println(prod5);//Muestra: 271280591019125.3792512347368306593102832093749341490148
System.out.println(div1);//Muestra: 8.575772
System.out.println(div2);//Muestra: 8.575772106557389
System.out.println(div3);//Muestra: 8.575772106557388787039073593655905
System.out.println(div4);//Muestra: 8
System.out.println(pot1);
//Muestra: 112211645670463389357295.355703431376693266206326164013530641234581668938362942141376
System.out.println(pot2);//Muestra: 1.122116E+23
System.out.println(pot3);//Muestra: 1.122116456704634E+23
System.out.println(pot4);//Muestra: 112211645670463389357295.3557034314
System.out.println(pot5);
//Muestra: 112211645670463389357295.355703431376693266206326164013530641234581668938362942141376
System.out.println(resid1);//Muestra: 3238346.88209035430327890692
System.out.println(resid2);//Muestra: 3238346.88209035430327890692
System.out.println(resid3);//Muestra: 3238346.88209035430327890692
System.out.println(resid4);//Muestra: 3238346.88209035430327890692
System.out.println(resid5);//Muestra: 3238346.88209035430327890692
System.out.println(b1);//Muestra: -48233189.04563763446567890876
}
}
if(b.signum()==1)
System.out.println("El bigdecimal b es mayor a 0");
else{
if(b.signum()==-1)
System.out.println("El bigdecimal b es menor a 0");
else
System.out.println("El bigdecimal es igual a 0");
}
José Gonzalo Espejo Cuba 21
GUIA DE JAVA
import java.math.BigDecimal;
public class Bigdecimal_comparison {
public static void main(String[] args) {
BigDecimal b1=new BigDecimal("0.0000000456");
BigDecimal b2=new BigDecimal("0.0000000456");
BigDecimal b3=new BigDecimal("0.0000000457");
if(b1.compareTo(b2)==0)
System.out.println("Los BigDecimals b1 y b2 son iguales");
else
System.out.println("Los BigDecimals b1 y b2 son diferentes");
//Muestra: Los BigDecimals b1 y b2 son iguales
if(b1.equals(b2))
System.out.println("Los BigDecimals b1 y b2 son iguales");
else
System.out.println("Los BigDecimals b1 y b2 son diferentes");
//Muestra: Los BigDecimals b1 y b2 son iguales
System.out.println("Compare de b1 y b3: "+b1.compareTo(b3));//-1
System.out.println("Compare de b3 y b1: "+b3.compareTo(b1));//1
}
}
B1.compareTo(B2) Donde B1 y B2 son objetos BigDecimals, la función compareTo devuelve un entero tal que:
0: Significa que B1 y B2 son iguales.
1: Significa que B1 es mayor que B2.
-1: Significa que B1 es menor que B2.
B1.equals(B2) Donde B1 y B2 son objetos BigDecimals, la función equals devuelve true (verdadero) si B1 y
B2 son iguales. Caso contrario devuelve false (falso).
import java.math.BigDecimal;
22 José Gonzalo Espejo Cuba
GUIA DE JAVA
import java.math.BigDecimal;
import java.math.BigInteger;
public class bigdecimal_to_values {
public static void main(String args[]){
BigDecimal b=new BigDecimal("124.23567");
byte num_byte=b.byteValue();//Transformando a un entero byte
short num_short=b.shortValue();//Transformando a un entero short
int num_int=b.intValue();//Transformando a un entero int
long num_long=b.longValue();//Transformando a un entero long
float num_realf=b.floatValue();//Transformando a un real float
double num_reald=b.doubleValue();//Transformando a un real double
String cad1=b.toString();//Transformando a una cadena
String cad2=b.toEngineeringString();//Transformando a una cadena
String cad3=b.toPlainString();//Transformando a una cadena
BigInteger bi=b.toBigInteger();//Transformando a un BigInteger
System.out.println(num_byte);//Muestra: 124
System.out.println(num_short);//Muestra: 124
System.out.println(num_int);//Muestra: 124
System.out.println(num_long);//Muestra: 124
System.out.println(num_realf);//Muestra: 124.23567
System.out.println(num_reald);//Muestra: 124.23567
System.out.println(cad1);//Muestra: 124.23567
System.out.println(cad2);//Muestra: 124.23567
System.out.println(cad3);//Muestra: 124.23567
System.out.println(bi);//Muestra: 124
}
}
byteValue() Retorna un entero de tipo byte.
shortValue() Retorna un entero de tipo short.
intValue() Retorna un entero de tipo int.
longValue() Retorna un entero de tipo long.
floatValue() Retorna un real de tipo float.
doubleValue() Retorna un real de tipo double.
toString() Retorna una cadena de tipo String usando notación científica.
toEngineeringString() Retorna una cadena de tipo String usando notación con exponente si es necesario.
toPlainString() Retorna una cadena de tipo String usando notación sin exponente.
toBigInteger() Retorna un BigInteger.
José Gonzalo Espejo Cuba 23
GUIA DE JAVA
MathContext.DECIMAL32 Utiliza 7 dígitos, si el número de dígitos sobrepasa los 7 dígitos, entonces utiliza la
notación científica.
MathContext.DECIMAL64 Utiliza 16 dígitos, si el número de dígitos sobrepasa los 16 dígitos, entonces utiliza la
notación científica.
MathContext.DECIMAL128 Utiliza 34 dígitos, si el número de dígitos sobrepasa los 34 dígitos, entonces utiliza la
notación científica.
MathContext.UNLIMITED No tiene límites de digitos.
24 José Gonzalo Espejo Cuba
GUIA DE JAVA
3 CADENAS YCARACTERES
System.out.printf("cad1: %s\n",cad1);//cad1:
System.out.printf("cad2: %s\n",cad2);//cad2: Hola
System.out.printf("cad3: %s\n",cad3);//cad3: Hola
System.out.printf("cad4: %s\n",cad4);//cad4: PROGRAMACION
System.out.printf("cad5: %s\n",cad5);//cad5: ACI
}
}
String cad1=new String() Crea una cadena cad.
String cad1=new String(cad2) Crea una cadena cad1 con el contenido de cad2 que puede ser de tipo
String o de tipo char[].
String cad1=new String(cad2,i,j) Donde cad2 es de tipo char[], i y j son enteros no negativos. Crea una
cadena cad1 con el contenido de cad2. Tomando a j caracteres a partir de
la i-esima posición.
3.1.5 SUBCADENAS
indexOf(cad) Donde cad es una secuencia de caracteres. Devuelve un entero que representa la posición de del
primer carácter de la cadena en la que aparece la secuencia cad. Si la secuenci cad no se encuentra
en la cadena entonces devolverá -1.
indexOf(cad,n) Donde cad es una secuencia de caracteres y n es un entero no negativo. Devuelve un entero que
representa la posición de del primer carácter de la cadena en la que aparece la secuencia cad a
partir del carácter de la n-esima posición. Si la secuencia cad no se encuentra en la cadena
entonces devolverá -1.
A.contains(B) Donde A y B son cadenas. La función contains devuelve true (verdadero) si A contiene a B. Caso
contrario devuelve false (falso).
A.starsWith(B) Donde A y B son cadenas. La función starsWith devuelve true (verdadero) si A comienza con B.
Caso contrario devuelve false (falso).
A.starsWith(B,n) Donde A y B son cadenas y n es un entero no negativo. La función starsWith devuelve true
(verdadero) si A comienza con B a partir de la posición n. Caso contrario devuelve false (falso).
A.endsWith(B) Donde A y B son cadenas. La función endsWith devuelve true (verdadero) si A termina con B. Caso
contrario devuelve false (falso).
if(cad1.equals(cad2))
System.out.println("Las cadenas cad1 y cad2 son iguales");
else
System.out.println("Las cadenas cad1 y cad2 son diferentes");
//Muestra: Las cad1 y cad2 son iguales
if(cad1.equals(cad3))
System.out.println("Las cad1 y cad3 son iguales");
else
System.out.println("Las cad1 y cad3 son diferentes");
José Gonzalo Espejo Cuba 27
GUIA DE JAVA
if(cad1.equalsIgnoreCase(cad3))
System.out.println("Las cad1 y cad3 son iguales");
else
System.out.println("Las cad1 y cad3 son diferentes");
//Muestra: Las cad1 y cad3 son iguales
System.out.println("REEMPLAZO DE CARACTERES");
bufer.setCharAt(1, 'R');//Reemplazando el caracter de la posicion 1 por R
System.out.println(bufer);//Muestra: PRogramacion en JAVA
bufer.setCharAt(13, 'o');//Reemplazando el caracter de la posicio 13 por o
System.out.println(bufer);//Muestra: PRogramacion on JAVA
3.2.6 SUBCADENAS
//Rango: [2,final)
System.out.println(cadena.substring(2));//ogramacion en JAVA
//Rango: [2,10)
System.out.println(cadena.substring(2,10));//ogramaci
//Rango: [4,17)
System.out.println(cadena.substring(3,17));//gramacion en J
//Rango: [4,17)
System.out.println(cadena.subSequence(3, 17));//gramacion en J
}
}
substring(i) Donde i es un entero no negativo, la función substring devuelve una subcadena a partir del
carácter i hasta el final.
substring(i,j) Donde i y j son enteros no negativos, la función substring devuelve una subcadena a partir del
carácter i hasta el carácter j.
subSequence(i, i) Donde i y j son enteros no negativos, la función subSequence devuelve una secuencia de
caracteres a partir del carácter i hasta el carácter j.
indexOf(cad) Donde cad es una secuencia de caracteres. Devuelve un entero que representa la posición de del
primer carácter de la cadena en la que aparece la secuencia cad. Si la secuenci cad no se encuentra
en la cadena entonces devolverá -1.
indexOf(cad,n) Donde cad es una secuencia de caracteres y n es un entero no negativo. Devuelve un entero que
representa la posición de del primer carácter de la cadena en la que aparece la secuencia cad a
partir del carácter de la n-esima posición. Si la secuencia cad no se encuentra en la cadena
entonces devolverá -1.
reverse() Invierte la cadena.
if(cad1.equals(cad2))
System.out.println("Las cad1 y cad2 son iguales");
else
System.out.println("Las cad1 y cad2 son diferentes");
//Muestra: Las cad1 y cad2 son iguales
if(cad1.equals(cad3))
System.out.println("Las cad1 y cad3 son iguales");
else
José Gonzalo Espejo Cuba 31
GUIA DE JAVA
3.3 CARACTERES
3.3.1 OBTENCION DE UN CHAR [] A PARTIR DE UNA CADENA
//VEC1
for(int i=0;i<A.length();i++)
System.out.print(vec1[i]);//Muestra: Programacion en JAVA
System.out.println();//Salto de linea
//VEC2
for(int i=0;i<A.length();i++)
System.out.print(vec2[i]);//Muestra: Programacion en JAVA
System.out.println();//Salto de linea
//VEC3
for(int i=0;i<B.length();i++)
System.out.print(vec3[i]);//Muestra: Programacion en C++
System.out.println();//Salto de linea
}
}
A.getChars(ini, fin, vec, n) Donde A es de tipo String o StringBuilder y vec es un char[], ini, fin y n son
enteros positivos. La función getChars copia el contenido de un String o
StringBuilder a un char[], toma los caracteres de A a partir del carácter en la
posición ini hasta la posición fin y los copia en la posición n de vec.
toCharArray() Copia el contenido de una cadena de tipo String a un array char[].
System.out.println(numbyte);//Muestra: 45
System.out.println(numshort);//Muestra: 45
System.out.println(numint);//Muestra: 45
System.out.println(numlong);//Muestra: 45
System.out.println(realf);//Muestra: 45.0
System.out.println(reald);//Muestra: 45.0
}
}
import java.math.BigInteger;
import java.math.BigDecimal;
public class conversion_numeros_cadenas {
public static void main(String[] args) {
String cad1,cad2,cad3,cad4,cad5,cad6,cad7,cad8;
byte numbyte=22;
short numshort=1243;
int numint=2445;
long numlong=184345;
float realf=(float) 23.0;
double reald=45.23;
BigInteger bi=new BigInteger("345465");
BigDecimal bd=new BigDecimal("243.45");
System.out.println(cad1);//Muestra: 22
System.out.println(cad2);//Muestra: 1243
System.out.println(cad3);//Muestra: 2445
System.out.println(cad4);//Muestra: 184345
System.out.println(cad5);//Muestra: 23.0
System.out.println(cad6);//Muestra: 45.23
System.out.println(cad7);//Muestra: 345465
System.out.println(cad8);//Muestra: 243.45
}
}
import java.util.StringTokenizer;
public class JAVA_StringTokenizer {
public static void main(String[] args) {
String cad1="Este es el primer ejemplo";
José Gonzalo Espejo Cuba 35
GUIA DE JAVA
System.out.println("Tokens1");
while(tokens1.hasMoreTokens()){
System.out.println(tokens1.nextToken());
}
System.out.println("Tokens2");
while(tokens2.hasMoreTokens()){
System.out.println(tokens2.nextToken());
}
System.out.println("Tokens3");
while(tokens3.hasMoreTokens()){
System.out.println(tokens3.nextToken());
}
}
}
Tokens1 Tokens2 Tokens3
Este Este Este
es es es
el el el
primer primer segundo
ejemplo ejemplo Ejemplo
StringTokenizer(X) Donde X es de tipo String. Corta la cadena X en pedazos donde haya espacios en blanco.
StringTokenizer(X,Y) Donde X y Y son de tipo String. Corta la cadena X en pedazos donde se encuentre uno o más
caracteres que pertenecen a Y
36 José Gonzalo Espejo Cuba
GUIA DE JAVA
4 VECTORES Y MATRICES
import java.util.Scanner;
public class matrices {
//Metodo para crear una matriz
public static int[][] crea_matriz(int filas, int columnas){
int nuevo[][]=new int[filas][columnas];
José Gonzalo Espejo Cuba 37
GUIA DE JAVA
return nuevo;
}
//Metodo para leer los datos de una matriz
public static void leer_matriz(int x[][],int filas, int columnas,Scanner leer){
for(int i=0;i<filas;i++){
for(int j=0;j<columnas;j++)
x[i][j]=leer.nextInt();
}
}
//Metodo para mostrar los datos de una matriz
public static void mostrar_matriz(int x[][], int filas, int columnas){
for(int i=0;i<filas;i++){
for(int j=0;j<columnas;j++)
System.out.print(x[i][j]+" ");
System.out.println();
}
}
public static void main(String[] args) {
Scanner lee=new Scanner(System.in);
//Variables que seran la dimension de la matriz2 y de la matriz3
int n=3;
int m=4;
System.out.println("vectorbyte:");
mostrar_vector(vectorbyte);//Muestra: 1 2 3 4 5 6 7 8 9 10 11 12
System.out.println("vectorshort:");
mostrar_vector(vectorshort);//Muestra: 101 102 103 104 105 200
System.out.println("vectorint:");
mostrar_vector(vectorint);//Muestra: 1000 2000 3000 4000 5000
System.out.println("vectorlong:");
mostrar_vector(vectorlong);//Muestra: 456 4656 45792 12245
System.out.println("vectorfloat:");
mostrar_vector(vectorfloat);//Muestra: 1.0 566.0 3.1416 2.01
System.out.println("vectordouble:");
mostrar_vector(vectordouble);//Muestra: 43.0034 12.455 45.0323 2.001
System.out.println("vectorchar:");
mostrar_vector(vectorchar);//Muestra: H O L A !
System.out.println("vectorstring:");
mostrar_vector(vectorstring);//Muestra: Jose Fermin Mauricio Roger
}
}
José Gonzalo Espejo Cuba 39
GUIA DE JAVA
class persona{
//ATRIBUTOS
private String nombre;
private String ap_paterno;
private String ap_materno;
//Fecha de nacimiento
private int dd;//dia
private int mm;//mes
private int aa;//año
}
5.1.2 CONSTRUCTORES
class persona{
//ATRIBUTOS
private String nombre;
private String ap_paterno;
private String ap_materno;
//Fecha de nacimiento
private int dd;//dia
private int mm;//mes
private int aa;//año
class semaforo{
//ATRIBUTOS
private boolean foco_rojo;
private boolean foco_amarillo;
private boolean foco_verde;
//CONSTRUCTOR
public semaforo(){foco_rojo=foco_amarillo=foco_verde=false;}
//METODOS O FUNCIONES MIEMBRO
public void encender_rojo(){
//Encendemos el foco rojo y apagamos los demas
foco_rojo=true;
foco_amarillo=false;
foco_verde=false;
}
public void encender_amarillo(){
//Encendemos el foco rojo y apagamos los demas
foco_rojo=false;
foco_amarillo=true;
José Gonzalo Espejo Cuba 41
GUIA DE JAVA
foco_verde=false;
}
public void encender_verde(){
//Encendemos el foco rojo y apagamos los demas
foco_rojo=false;
foco_amarillo=false;
foco_verde=true;
}
public boolean puede_avanzar(){
//Si el foco verde esta encendido devuelve verdadero
return (foco_verde);
}
}//Fin de la clase semaforo
class persona{
//ATRIBUTOS
private String nombre;
private String ap_paterno;
private String ap_materno;
//Fecha de nacimiento
private int dd;//dia
private int mm;//mes
private int aa;//año
public persona(){}
public void set_datos(String nom,String ap,String am){
nombre=nom;
ap_paterno=ap;
ap_materno=am;
}
public void set_datos(int d,int m,int a){
dd=d;
mm=m;
aa=a;
}
public void set_datos(String nom,String ap,String am,int d,int m,int a){
nombre=nom;
ap_paterno=ap;
ap_materno=am;
42 José Gonzalo Espejo Cuba
GUIA DE JAVA
dd=d;
mm=m;
aa=a;
}
public void mostrar(){
System.out.println("Nombre: "+nombre);
System.out.println("Apellido Paterno: "+ap_paterno);
System.out.println("Apellido Materno: "+ap_materno);
System.out.printf("Fecha de nacimiento: %02d/%02d/%04d\n",dd,mm,aa);
}
}//FIN DE LA CLASE persona
class persona{
//ATRIBUTOS
private String nombre;
private String ap_paterno;
private String ap_materno;
José Gonzalo Espejo Cuba 43
GUIA DE JAVA
//Fecha de nacimiento
private int dd;//dia
private int mm;//mes
private int aa;//año
public persona(){}
//FUNCIONES PARA MODIFICAR DATOS PRIVADOS
public void set_nombre(String nom){nombre=nom;}
public void set_ap_paterno(String ap){ap_paterno=ap;}
public void set_ap_materno(String am){ap_materno=am;}
public void set_fec_nac(int d,int m,int a){
dd=d;
mm=m;
aa=a;
}
//FUNCIONES PARA OBTENER DATOS PRIVADOS
public String get_nombre(){return nombre;}
public String get_ap_paterno(){return ap_paterno;}
public String get_ap_materno(){return ap_materno;}
class persona{
//ATRIBUTOS
String nombre;
String ap_paterno;
String ap_materno;
//Fecha de nacimiento
int dd;//dia
int mm;//mes
int aa;//año
public persona(){}
}//FIN DE LA CLASE persona
System.out.println(P.ap_paterno);//Muestra: Espejo
System.out.println(P.ap_materno);//Muestra: Cuba
System.out.printf("%02d/%02d/%04d\n", P.dd,P.mm,P.aa);//Muestra: 25/11/1986
}
}
5.4 HERENCIA
class persona{
//ATRIBUTOS
protected String nombre;
protected String ap_paterno;
protected String ap_materno;
//Fecha de nacimiento
protected int dd;//dia
protected int mm;//mes
protected int aa;//año
public persona(){}
public persona(String nom,String ap,String am, int d,int m,int a){
nombre=nom;
ap_paterno=ap;
ap_materno=am;
dd=d;
mm=m;
aa=a;
}
public void mostrar(){
System.out.println("Nombre: "+nombre);
System.out.println("Apellido Paterno: "+ap_paterno);
System.out.println("Apellido Materno: "+ap_materno);
System.out.printf("Fecha de nacimiento: %02d/%02d/%04d\n",dd,mm,aa);
}
}//FIN DE LA CLASE persona
class estudiante extends persona{
String cod_estudiante;
estudiante(){
super();//Hereda el contructor vacio de persona
}
//Constructor de 7 parametros
estudiante(String nom,String ap,String am, int d,int m,int a,String ce){
super(nom,ap,am,d,m,a);//Hereda el contructor de 6 parametros de persona
cod_estudiante=ce;
}
5.5 COMPOSICION
5.5.1 EJEMPLO SIMPLE
import java.util.Scanner;
class oficina{
private int nro;
private int capacidad;
private String detalle;
public oficina(int n,int c,String d){
nro=n;
capacidad=c;
detalle=d;
}
void mostrar_oficina(){
System.out.println("Nro: "+nro);
System.out.println("Capacidad: "+capacidad);
System.out.println("Nro: "+nro);
}
}
class edificio{
int nro_oficinas;
oficina vec[];
edificio(int n){
nro_oficinas=n;
vec=new oficina[nro_oficinas];
}
public void crear_oficinas(Scanner leer){
int a,b;
String c;
for(int i=0;i<nro_oficinas;i++){
a=leer.nextInt();
b=leer.nextInt();
c=leer.next();
vec[i]=new oficina(a,b,c);
}
}
public void mostrar(){
for(int i=0;i<nro_oficinas;i++){
vec[i].mostrar_oficina();
System.out.println("**********");
}
}
}
public class Ejemplo_composicion {
public static void main(String[] args) {
Scanner leer=new Scanner(System.in);
edificio E=new edificio(2);
E.crear_oficinas(leer);
E.mostrar();
}
}
46 José Gonzalo Espejo Cuba
GUIA DE JAVA
6 CONTENEDORES DE JAVA
System.out.println("\nFUNCION ADDELEMENT");
v2.addElement(14);//Añade el elemento 14
v2.addElement(4);//Añade el elemento 4
System.out.print("v2: ");
mostrar_Vector(v2);//Muestra: 14 4
System.out.println("\nFUNCION ADDALL");
v1.addAll(v2);//Inserta v2 al final de v1
System.out.print("v1: ");
mostrar_Vector(v1);//Muestra: 8 5 16 17 13 14 4
v1.addAll(3, v2);//Inserta v2 en la posicion 3 de v1
System.out.print("v1: ");
mostrar_Vector(v1);//Muestra: 8 5 16 14 4 17 13 14 4
System.out.println("FUNCION INSERTELEMENTAT");
v1.insertElementAt(100, 7);//Inserta 100 en la posicion 7 de v1
System.out.print("v1: ");
mostrar_Vector(v1);//Muestra: 8 5 16 14 4 17 13 100 14 4
v1.insertElementAt(94, 10);//Inserta 94 en la posicion final de v1
System.out.print("v1: ");
mostrar_Vector(v1);//Muestra: 8 5 16 14 4 17 13 100 14 4 94
}
}
V.add(dato) Donde V es un vector, la función add inserta el dato en la posición final de V.
V.add(pos,dato) Donde V es un vector y pos en un entero no negativo, la función add inserta el dato
en la posición pos de V.
V.addElement(dato) Donde V es un vector, la función addElement inserta el dato en la posición final de
V.
V1.addAll(V2) Donde V1 y V2 son vectores, la función addAll inserta el contenido de V2 en la
José Gonzalo Espejo Cuba 47
GUIA DE JAVA
import java.util.Vector;
public class Vector_eliminacion_datos {
public static void mostrar_Vector(Vector <Integer> V){
for(int i=0;i<V.size();i++)
System.out.print(V.elementAt(i) +" ");
System.out.println();
}
public static void main(String[] args) {
Vector<Integer>v1=new Vector<Integer>();
Vector<Integer>v2=new Vector<Integer>();
Vector<Integer>v3=new Vector<Integer>();
v1.add(6);
v1.add(50);
v1.add(15);
v1.add(25);
v1.add(10);
v1.add(9);
v1.add(24);
v2.add(25);
v2.add(7);
v2.add(10);
v3.add(50);
v3.add(24);
v3.add(12);
System.out.print("v1: ");
mostrar_Vector(v1);//Muestra: 6 50 15 25 10 9 24
System.out.print("v2: ");
mostrar_Vector(v2);//Muestra: 25 7 10
System.out.print("v3: ");
mostrar_Vector(v3);//Muestra: 50 24 12
System.out.println("FUNCION REMOVE");
v1.remove(2);//Elimina el dato de la posicion 2
System.out.print("v1: ");
mostrar_Vector(v1);//Muestra: 6 50 25 10 9 24
System.out.println("FUNCION REMOVEELEMENTAT");
v1.removeElementAt(0);//Elimina el dato de la posicion inicial
System.out.print("v1: ");
mostrar_Vector(v1);//Muestra: 50 25 10 9 24
System.out.println("FUNCION REMOVEALL");
v1.removeAll(v2);//Elimina los datos de v1 que se encuentran en v2
System.out.print("v1: ");
mostrar_Vector(v1);//Muestra: 50 9 24
System.out.println("FUNCION RETAINALL");
v1.retainAll(v3);//Elimina los datos de v1 que se no encuentran en v3
System.out.print("v1: ");
mostrar_Vector(v1);//Muestra: 50 9 24
System.out.println("FUNCION REMOVEALLELEMENTS");
v1.removeAllElements();//Elimina todos los datos
System.out.print("v1: ");
mostrar_Vector(v1);//Muestra:
}
48 José Gonzalo Espejo Cuba
GUIA DE JAVA
}
V.remove(k) Donde V es un vector y k es un entero no negativo, la función remove elimina el dato
que se encuentra en la k-esima posición.
V.removeElementAt(k) Donde V es un vector y k es un entero no negativo, la función removeElementAt
elimina el dato que se encuentra en la k-esima posición.
V1.removeAll(V2) Donde V1 y V2 son vectores. La función removeAll elimina los datos de V1 que se
encuentran en V2.
V1.retainAll(V2) Donde V1 y V2 son vectores. La función retainAll elimina los datos de V1 que no se
encuentran en V2.
V.removeAllElements() Donde V es un vector. La función removeAllElements elimina todos los datos de V.
import java.util.Vector;
public class reemplazo_datos {
public static void mostrar(Vector<Integer> V){
for(int i=0;i<V.size();i++)
System.out.print(V.elementAt(i)+" ");
System.out.println();
}
public static void main(String args[]){
Vector<Integer>V=new Vector<Integer>();
V.add(3);
V.add(28);
V.add(17);
V.add(31);
V.add(25);
mostrar(V);//Muestra: 3 28 17 31 25
System.out.println("FUNCION SET");
V.set(2, 54);//Reemplazando el dato de la posicion 2
mostrar(V);//Muestra: 3 28 54 31 25
System.out.println("FUNCION SETELEMENTAT");
V.setElementAt(100,4);//Reemplazando el dato de la posicion 4
mostrar(V);//Muestra: 3 28 54 31 100
}
}
set(k, nuevo_dato) Donde k es un entero no negativo. La función set reemplaza el dato que se
encuentra en la k-esima posición por un nuevo dato.
setElementAt(k, nuevo_dato) Donde k es un entero no negativo. La función setElementAt reemplaza el dato que
se encuentra en la k-esima posición por un nuevo dato.
import java.util.Vector;
public class Vector_capacity {
public static void mostrar(Vector<Integer> V){
for(int i=0;i<V.size();i++)
System.out.print(V.elementAt(i)+" ");
System.out.println();
}
public static void main(String args[]){
Vector<Integer>V=new Vector<Integer>();
V.add(3);
V.add(28);
José Gonzalo Espejo Cuba 49
GUIA DE JAVA
V.add(17);
V.add(31);
V.add(25);
mostrar(V);//Muestra: 3 28 17 31 25
System.out.println("Longitud del vector: "+V.size());//5
import java.util.Vector;
public class Vector_elements {
public static void main(String args[]){
Vector<Integer>V=new Vector<Integer>();
V.add(3);
V.add(28);
V.add(17);
V.add(31);
V.add(25);
System.out.println("ElementAt");
for(int i=0;i<V.size();i++)
System.out.print(V.elementAt(i)+" ");//Muestra: 3 28 17 31 25
System.out.println();
System.out.println("get");
for(int i=0;i<V.size();i++)
System.out.print(V.get(i)+" ");//Muestra: 3 28 17 31 25
System.out.println();
//Mediante iteradores
ListIterator listIterator = V.listIterator();
while(listIterator.hasNext())//Mientras haya mas elementos
System.out.print(listIterator.next()+" ");
System.out.println();
}
elementAt(i) Donde i es un entero no negativo. La función elementAt devuele el dato que se enceuntra en la i-
esima posición.
get(i) Donde i es un entero no negativo. La función get devuele el dato que se enceuntra en la i-esima
posición.
firstElement() Devuele el dato que se enceuntra en la primera posición.
lastElement() Devuele el dato que se enceuntra en la ultima posición.
ListIterator() Funciona como un puntero. Se obtiene los datos mediante iteradores.
hasnext() Devuelve true (verdadero) si el iterador esta apuntando a un elemento del contenedor. Caso
contrario devuelve false (falso).
next() Apunta al siguiente elemento del contenedor.
import java.util.Vector;
public class busqueda_y_comparacion {
public static void main(String args[]){
Vector<Integer>V1=new Vector<Integer>();
Vector<Integer>V2=new Vector<Integer>();
Vector<Integer>V3=new Vector<Integer>();
V1.add(3);V1.add(28);V1.add(17);V1.add(31);V1.add(25);
V2.add(3);V2.add(28);V2.add(17);V2.add(31);V2.add(25);
V3.add(28);V3.add(17);V3.add(31);
//COMPARACION DE V1 CON V2
if(V1.equals(V2))//V1 y V2 son iguales?
System.out.println("Los vectores V1 y V2 son iguales");
else
System.out.println("Los vectores V1 y V2 son diferentes");
//Muestra: Los vectores V1 y V2 son iguales
//BUSQUEDA DE ELEMENTOS
if(V1.contains(17))//V1 contiene el numero 17?
System.out.println("17 esta en el vector V1");
else
System.out.println("17 no se encuentra en el vector V1");
//Muestra: 17 esta en el vector V1
if(V1.containsAll(V3))//V1 contiene a V3
System.out.println("V1 contiene a V3");
else
System.out.println("V3 no se encuentra en V1");
//Muestra: V1 contiene a V3
}
}
V1.equals(V2) Donde V1 y V2 son vectores. La función equals devuelve true (verdadero) si V1 y V2 son
iguales, es decir que contienen los mismos elementos. Caso contrario devuelve false (falso).
V.contains(dato) Donde V es un vector. La función contains devuelve true (verdadero) si el dato esta en V. Caso
contrario devuelve false (falso).
V1.containsAll(V2) Donde V1 y V2 son vectores. La función containsAll devuelve true (verdadero) si V1contiene a
V2. Caso contrario devuelve false (falso).
clear() Donde V es un vector. La función clear() elimina todos los datos de V.
isEmpty() Devuelve true (verdadero) si el vector este vacio, es decir no contiene ningún elemento. Caso
José Gonzalo Espejo Cuba 51
GUIA DE JAVA
import java.util.Stack;
public class Pila {
public static void main(String args[]){
Stack<Integer>P=new Stack<Integer>();
//Introduciendo los datos: 12, 43, 4, 11, 20 y 13 a la pila P
P.push(12);
P.push(43);
P.push(4);
P.push(11);
P.push(20);
P.push(13);
System.out.println("Longitud de la pila: "+P.size());//6
import java.util.Queue;
import java.util.ArrayDeque;
public class Cola {
public static void main(String[] args) {
Queue <Integer> C=new ArrayDeque<Integer>();
//Introduciendo los datos: 12, 43, 4, 11, 20 y 13 a la cola C
C.add(12);
C.add(43);
C.add(4);
C.add(11);
C.offer(20);
C.offer(13);
System.out.println("Longitud de la cola: "+C.size());//6
import java.util.PriorityQueue;
public class priorityqueue1 {
public static void main(String args[]){
PriorityQueue<Integer> CP=new PriorityQueue<Integer>();
//Introduciendo datos a la cola de prioridades CP2
CP.add(34);
CP.add(57);
CP.add(12);
CP.add(24);
CP.add(93);
System.out.println("Longitud de CP2: "+CP.size());//5
if(CP.contains(34))//CP contiene el dato 34?
System.out.println("CP contiene a 34");
while(!CP.isEmpty()){//Mientras CP no este vacio
System.out.print(CP.peek()+" ");
CP.poll();
}//Imprime: 12 24 34 57 93
System.out.println();
}
}
add(dato) Introduce un dato en la cola de prioridades.
peek() Devuelve el menor de los datos de la cola de prioridades.
remove() Devuelve el menor de los datos de la cola de prioridades.
poll() Devuelve el menor de los datos de la cola de prioridades. A diferencia de peek, remueve este dato.
isEmpty() Devuelve true (verdadero) si la cola de prioridades esta vacia, es decir no contiene ningún elemento.
Caso contrario devuelve false (falso).
size() Devuelve un entero que representa el tamaño o longitud de la cola de prioridades, es decir el número
de elementos que contiene.
contains(dato) Devuelve true (verdadero) si la cola de prioridades contiene el dato. Caso contrario devuelve false
(falso).
String nombre;
int codigo;
public Estudiante(String name,int code){
nombre=name;
codigo=code;
}
//Metodo para comparar dos cadenas (orden lexicografico)
public int compareTo(Estudiante otro) {
return nombre.compareToIgnoreCase(otro.nombre);
}
public void mostrar(){
System.out.println("Nombre: "+nombre);
System.out.println("Codigo: "+codigo);
}
}
public class ColaPrioridad_Estudiante {
public static void main(String args[]){
PriorityQueue<Estudiante> CP=new PriorityQueue<Estudiante>();
CP.add(new Estudiante("Juan Perez",45));
CP.add(new Estudiante("Miguel Sanchez",17));
CP.add(new Estudiante("Alan Romero",100));
CP.add(new Estudiante("Alan Castillo",120));
//Ordenado mediante el Nombre
while(!CP.isEmpty()){
CP.poll().mostrar();
System.out.println();
}
/*MUESTRA:
Nombre: Alan Castillo
Codigo: 120
import java.util.Deque;
import java.util.ArrayDeque;
import java.util.Iterator;
public class Bicola {
//Metodo que recorre una bicola mediante un iterador ascendente
public static void mostrar_bicola1(Deque <Integer> X){
Iterator<Integer>it=X.iterator();
while(it.hasNext())
System.out.print(it.next()+" ");
System.out.println();
}
//Metodo que recorre una bicola mediante un iterador descendente
public static void mostrar_bicola2(Deque <Integer> X){
Iterator<Integer>it=X.descendingIterator();
while(it.hasNext())
System.out.print(it.next()+" ");
System.out.println();
}
public static void main(String[] args) {
Deque<Integer>B=new ArrayDeque<Integer>();
//Introduciendo por delante los datos: 8, 11, 15
B.addFirst(8);
B.addFirst(11);
B.offerFirst(15);
mostrar_bicola1(B);//Muestra: 15 11 8
//Introduciendo por detras los datos: 12, 20, 13
B.addLast(12);
B.addLast(20);
B.offerLast(13);
mostrar_bicola1(B);//Muestra: 15 11 8 12 20 13
mostrar_bicola2(B);//Muestra: 13 20 12 8 11 15
System.out.println("Longitud de la bicola: "+B.size());//6
if(B.contains(15))//¿Esta el dato 15 en la bicola B?
System.out.println("La bicola B si contiene el dato 15");
José Gonzalo Espejo Cuba 55
GUIA DE JAVA
else
System.out.println("La bicola B no contiene el dato 15");
//Muestra: La bicola B si contiene el dato 15
if(B.isEmpty())
System.out.println("La bicola esta vacia");
else
System.out.println("La bicola tiene "+B.size()+" elementos");
//Muestra: La bicola tiene 2 elementos
}
}
addFirst(dato) Introduce un dato al principio de la bicola.
offerFirst(dato) Introduce un dato al principio de la bicola.
addLast(dato) Introduce un dato al final de la bicola.
offerLast(dato) Introduce un dato al final de la bicola.
getFirst() Devuelve el primer dato que se encuentra al principio de la bicola,
peekFirst() Devuelve el primer dato que se encuentra al principio de la bicola; Devuelve null si la bicola
esta vacia.
pollFirst() Devuelve y elimina el primer dato que se encuentra al principio de la bicola; Devuelve null si
la bicola esta vacia.
removeFirst() Devuelve y elimina el primer dato que se encuentra al principio de la bicola.
getLast() Devuelve el ultimo dato que se encuentra al principio de la bicola,
peekLast() Devuelve el ultimo dato que se encuentra al principio de la bicola; Devuelve null si la bicola
esta vacia.
pollLast() Devuelve y elimina el ultimo dato que se encuentra al principio de la bicola; Devuelve null si
la bicola esta vacia.
removeLast() Devuelve y elimina el último dato que se encuentra al principio de la bicola.
isEmpty() Devuelve true (verdadero) si la bicola esta vacia, es decir no contiene ningún elemento. Caso
contrario devuelve false (falso).
size() Devuelve un entero que representa la longitud de la bicola, es decir el número de elementos
que contiene.
contains(dato) Devuelve true (verdadero) si la bicola contiene el dato. Caso contrario devuelve false (falso).
iterator() Devuelve un iterador que avanza de maner ascendente, desde el primer elemento hasta el
último.
descendingIterator() Devuelve un iterador que avanza de maner descendente, desde el último elemento hasta el
primero.
clear() Elimina todos los elementos de la bicola.
56 José Gonzalo Espejo Cuba
GUIA DE JAVA
6.6 LISTAS
6.6.1 INSERCCION DE DATOS EN LAS LISTAS
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
public class Linkedlist {
public static void mostrar_Lista(List< Integer > X){
ListIterator <Integer> iterador = X.listIterator();
while(iterador.hasNext())
System.out.print(iterador.next()+" ");
System.out.println();
}
public static void main(String[] args) {
List<Integer>L1=new LinkedList<Integer>();//Crea una lista L1
List<Integer>L2=new LinkedList<Integer>();//Crea una lista L2
//INSERCCION DE ELEMENTOS
System.out.println("FUNCION ADD");
L1.add(5);//Inserta 5 al final de v1
L1.add(17);//Inserta 17 al final de v1
L1.add(13);//Inserta 13 al final de v1
System.out.print("L1: ");
mostrar_Lista(L1);//Muestra: 5 17 13
L1.add(0, 8);//Inserta 8 al principio de v1
System.out.print("L1: ");
mostrar_Lista(L1);//Muestra: 8 5 17 13
L1.add(2, 16);//Inserta 16 en la posicion 2 de v1
System.out.print("L1: ");
mostrar_Lista(L1);//Muestra: 8 5 16 17 13
System.out.println("\nFUNCION ADDALL");
L2.addAll(L1);//Inserta L1 al final de L2
System.out.print("L2: ");
mostrar_Lista(L2);//Muestra: 8 5 16 17 13
L2.addAll(3, L1);//Inserta L1 en la posicion 3 de L2
System.out.print("L2: ");
mostrar_Lista(L2);//Muestra: 8 5 16 8 5 16 17 13 17 13
}
}
L.add(dato) Donde L es una lista, la función add inserta el dato en la posición final de L.
L.add(pos,dato) Donde L es una lista y pos en un entero no negativo, la función add inserta el dato en la
posición pos de L.
L.addAll(C) Donde L es una lista y C es una estructura de coleccion, la función addAll inserta el
contenido de C en la posición final de L.
L.addAll(pos,C) Donde L es una lista y C es una estructura de coleccion, la función addAll inserta el
contenido de C en la posición pos de L.
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
public class List_eliminacion_datos {
public static void mostrar_Lista(List< Integer > X){
ListIterator <Integer> iterador = X.listIterator();
while(iterador.hasNext())
System.out.print(iterador.next()+" ");
System.out.println();
José Gonzalo Espejo Cuba 57
GUIA DE JAVA
}
public static void main(String[] args) {
List<Integer>L1=new LinkedList<Integer>();
List<Integer>L2=new LinkedList<Integer>();
List<Integer>L3=new LinkedList<Integer>();
L1.add(6);
L1.add(50);
L1.add(15);
L1.add(25);
L1.add(10);
L1.add(9);
L1.add(24);
L2.add(25);
L2.add(7);
L2.add(10);
L3.add(50);
L3.add(24);
L3.add(12);
System.out.print("L1: ");
mostrar_Lista(L1);//Muestra: 6 50 15 25 10 9 24
System.out.print("L2: ");
mostrar_Lista(L2);//Muestra: 25 7 10
System.out.print("L3: ");
mostrar_Lista(L3);//Muestra: 50 24 12
System.out.println("FUNCION REMOVE");
L1.remove(2);//Elimina el dato de la posicion 2
System.out.print("L1: ");
mostrar_Lista(L1);//Muestra: 6 50 25 10 9 24
System.out.println("FUNCION REMOVEALL");
L1.removeAll(L2);//Elimina los datos de L1 que se encuentran en L2
System.out.print("L1: ");
mostrar_Lista(L1);//Muestra: 6 50 9 24
System.out.println("FUNCION RETAINALL");
L1.retainAll(L3);//Elimina los datos de L1 que se no encuentran en L3
System.out.print("L1: ");
mostrar_Lista(L1);//Muestra: 50 24
System.out.println("FUNCION CLEAR");
L1.clear();//Elimina todos los datos
System.out.print("L1: ");
mostrar_Lista(L1);//Muestra:
}
}
L.remove(k) Donde L es una lista y k es un entero no negativo, la función remove elimina el dato que se
encuentra en la k-esima posición.
L.removeAll(C) Donde L es una lista y C es una colección. La función removeAll elimina los datos de L que se
encuentran en C.
L.retainAll(C) Donde L es una lista y C es una colección. La función retainAll elimina los datos de L que no se
encuentran en C.
L.clear() Donde L es una lista. La función clear elimina todos los datos de L.
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
58 José Gonzalo Espejo Cuba
GUIA DE JAVA
System.out.println("FUNCION SET");
L.set(2, 54);//Reemplazando el dato de la posicion 2
mostrar_Lista(L);//Muestra: 3 28 54 31 25
}
}
set(k, nuevo_dato) Donde k es un entero no negativo. La función set reemplaza el dato que se encuentra en la
k-esima posición por un nuevo dato.
import java.util.LinkedList;
import java.util.List;
public class List_capacity {
public static void main(String args[]){
List<Integer>L=new LinkedList<Integer>();
L.add(3);
L.add(28);
L.add(17);
L.add(31);
L.add(25);
System.out.println("Longitud de la lista: "+L.size());//5
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
public class List_elements {
public static void main(String args[]){
List<Integer>L=new LinkedList<Integer>();
L.add(3);
José Gonzalo Espejo Cuba 59
GUIA DE JAVA
L.add(28);
L.add(17);
L.add(31);
L.add(25);
System.out.println("get");
for(int i=0;i<L.size();i++)
System.out.print(L.get(i)+" ");//Muestra: 3 28 17 31 25
System.out.println();
//Iteradores de lista
ListIterator listIterator1 = L.listIterator();
while(listIterator1.hasNext())
System.out.print(listIterator1.next()+" ");
System.out.println();
import java.util.LinkedList;
import java.util.List;
public class List_search_comparison {
public static void main(String args[]){
List<Integer>L1=new LinkedList<Integer>();
List<Integer>L2=new LinkedList<Integer>();
List<Integer>L3=new LinkedList<Integer>();
L1.add(3);L1.add(28);L1.add(17);L1.add(31);L1.add(25);
L2.add(3);L2.add(28);L2.add(17);L2.add(31);L2.add(25);
L3.add(28);L3.add(17);L3.add(31);
//COMPARACION DE L1 CON L2
if(L1.equals(L2))//V1 y V2 son iguales?
System.out.println("Las listas L1 y L2 son iguales");
else
System.out.println("Las listas L1 y L2 son diferentes");
//Muestra: Las listas L1 y L2 son iguales
//BUSQUEDA DE ELEMENTOS
if(L1.contains(17))//L1 contiene el numero 17?
System.out.println("17 esta en la lista L1");
else
System.out.println("17 no se encuentra en la lista L1");
//Muestra: 17 esta en la lista L1
60 José Gonzalo Espejo Cuba
GUIA DE JAVA
if(L1.containsAll(L3))//L1 contiene a L3
System.out.println("L1 contiene a L3");
else
System.out.println("L3 no se encuentra en L1");
//Muestra: L1 contiene a L3
}
}
L1.equals(L2) Donde L1 y L2 son listas. La función equals devuelve true (verdadero) si L1 y L2 son iguales, es
decir que contienen los mismos elementos. Caso contrario devuelve false (falso).
L.contains(dato) Donde L es una lista. La función contains devuelve true (verdadero) si el dato esta en L. Caso
contrario devuelve false (falso).
isEmpty() Devuelve true (verdadero) si la lista este vacio, es decir no contiene ningún elemento. Caso
contrario devuelve false (falso).
6.7 CONJUNTOS
6.7.1 INSERCCION DE DATOS
import java.util.Iterator;
import java.util.Set;
import java.util.HashSet;
public class Conjuntos_inserccion_datos {
public static void mostrar_conjunto(Set<Integer> C){
for(Iterator<Integer> it=C.iterator();it.hasNext();)
System.out.print(it.next()+" ");
System.out.println();
}
public static void main(String args[]){
//CREACION DE CONJUNTOS
Set<Integer>conjA=new HashSet<Integer>();
Set<Integer>conjB=new HashSet<Integer>();
//INSERCCION DE DATOS
System.out.println("FUNCION ADD");
//Introduciendo datos al conjunto A
conjA.add(25);
conjA.add(11);
conjA.add(25);
conjA.add(16);
conjA.add(11);
conjA.add(2);
conjA.add(7);
conjA.add(25);
conjA.add(19);
conjA.add(14);
System.out.print("ConjA: ");
mostrar_conjunto(conjA);//Muestra: 16 19 2 7 25 11 14
System.out.println("FUNCION ADDALL");
conjB.addAll(conjA);//Introduciendo los datos del conjunto A al conjunto B
System.out.print("ConjB: ");
mostrar_conjunto(conjB);//Muestra: 16 2 19 7 25 11 14
}
}
add(dato) Inserta el dato en un conjunto, los conjuntos no permiten datos repetidos. A diferencia de
<set> de C++, los conjuntos en JAVA no tienen algún orden.
addAll(C) Inserta el contenido de la collecion C en un conjunto.
José Gonzalo Espejo Cuba 61
GUIA DE JAVA
import java.util.Iterator;
import java.util.Set;
import java.util.HashSet;
public class Conjuntos_eliminacion_datos {
public static void mostrar_conjunto(Set<Integer> C){
for(Iterator<Integer> it=C.iterator();it.hasNext();)
System.out.print(it.next()+" ");
System.out.println();
}
public static void main(String args[]){
//CREACION DE CONJUNTOS
Set<Integer>conjA=new HashSet<Integer>();
Set<Integer>conjB=new HashSet<Integer>();
Set<Integer>conjC=new HashSet<Integer>();
//Introduciendo datos al conjunto A
conjA.add(25);conjA.add(11);conjA.add(25);conjA.add(16);conjA.add(11);
conjA.add(2);conjA.add(7);conjA.add(25);conjA.add(19);conjA.add(14);
//Introduciendo datos al conjunto B
conjB.add(25);conjB.add(16);conjB.add(7);conjB.add(10);
//Introduciendo datos al conjunto C
conjC.add(11);conjC.add(2);conjC.add(86);
System.out.print("ConjA: ");
mostrar_conjunto(conjA);//Muestra: 16 19 2 7 25 11 14
System.out.print("ConjB: ");
mostrar_conjunto(conjB);//Muestra: 16 7 25 10
System.out.print("ConjC: ");
mostrar_conjunto(conjC);//Muestra: 2 86 11
//ELIMINACION DE DATOS
System.out.println("\nFUNCION REMOVE");
conjA.remove(19);//Eliminando el dato 19
System.out.print("ConjA: ");
mostrar_conjunto(conjA);//Muestra: 16 2 7 25 11 14
conjA.remove(54);//Eliminando el dato 54
System.out.print("ConjA: ");
mostrar_conjunto(conjA);//Muestra: 16 2 7 25 11 14
System.out.println("\nFUNCION REMOVEALL");
conjA.removeAll(conjB);//Eliminando los datos que pertenecen a B
System.out.print("ConjA: ");
mostrar_conjunto(conjA);//Muestra: 2 11 14
System.out.println("\nFUNCION REMOVEALL");
conjA.retainAll(conjC);//Eliminando los datos que no pertenecen a C
System.out.print("ConjA: ");
mostrar_conjunto(conjA);//Muestra: 2 11
System.out.println("\nFUNCION CLEAR");
conjA.clear();//Eliminando todos los datos de conjA
System.out.print("ConjA: ");
mostrar_conjunto(conjA);//Muestra:
}
}
A.remove(dato) Donde A es un conjunto, la función remove elimina el dato si es que se encuentra en A.
A.removeAll(C) Donde A es un conjunto y C es una colección. La función removeAll elimina los datos de A que se
encuentran en C.
A.retainAll(C) Donde A es un conjunto y C es una colección. La función retainAll elimina los datos de A que no
se encuentran en C.
A.clear() Donde A es un conjunto. La función clear elimina todos los datos de A.
62 José Gonzalo Espejo Cuba
GUIA DE JAVA
import java.util.Iterator;
import java.util.Set;
import java.util.HashSet;
public class capacidad_conjuntos {
public static void mostrar_conjunto(Set<Integer> C){
for(Iterator<Integer> it=C.iterator();it.hasNext();)
System.out.print(it.next()+" ");
System.out.println();
}
public static void main(String args[]){
//CREACION DE CONJUNTOS
Set<Integer>conjA=new HashSet<Integer>();
//Introduciendo datos al conjunto A
conjA.add(25);conjA.add(11);conjA.add(25);conjA.add(16);conjA.add(11);
conjA.add(2);conjA.add(7);conjA.add(25);conjA.add(19);conjA.add(14);
System.out.print("ConjA: ");
mostrar_conjunto(conjA);//Muestra: 16 19 2 7 25 11 14
import java.util.HashSet;
import java.util.Set;
public class busqueda_comparacion_en_conjunto {
public static void main(String args[]){
Set<Integer>conjA=new HashSet<Integer>();
Set<Integer>conjB=new HashSet<Integer>();
Set<Integer>conjC=new HashSet<Integer>();
//COMPARACION DE CONJUNTOS A Y B
if(conjA.equals(conjB))//Los conjuntos A y B son iguales?
System.out.println("Los conjuntos A y B son iguales");
else
System.out.println("Los conjuntos A y B son diferentes");
//Muestra: Los conjuntos A y B son iguales
if(conjA.contains(conjC))//A contiene a C?
System.out.println("A contiene a C");
else
System.out.println("C no se encuentra en A");
//Muestra: C no se encuentra en A
}
}
C1.equals(C2) Donde C1 y C2 son conjuntos. La función equals devuelve true (verdadero) si C1 y C2 son iguales,
es decir que contienen los mismos elementos. Caso contrario devuelve false (falso).
C.contains(dato) Donde C es un conjunto. La función contains devuelve true (verdadero) si el dato esta en C. Caso
contrario devuelve false (falso).
A.contains(X) Donde A es un conjunto y X es una colección. La función contains devuelve true (verdadero) si los
datos de X estan en C. Caso contrario devuelve false (falso).
6.8 MAPAS
6.8.1 INSERCCION DE DATOS
import java.util.Iterator;
import java.util.Map;
import java.util.HashMap;
public class inserccion_datos {
public static void mostrar_mapa(Map<Character,String> X){
Iterator<String>contenido=X.values().iterator();
for(Iterator<Character> llave=X.keySet().iterator();llave.hasNext();)
System.out.println(llave.next()+" "+contenido.next());
}
public static void main(String args[]){
//CREACION DE MAPAS
Map<Character,String> M1=new HashMap<Character,String>();
Map<Character,String> M2=new HashMap<Character,String>();
//INSERCCION DE DATOS
System.out.println("Funcion put");
M1.put('b', "primero");
M1.put('c', "segundo");
M1.put('a', "tercero");
M1.put('A', "cuarto");
M1.put('e', "quinto");
M1.put('a', "sexto");
M1.put('d', "septimo");
System.out.println("M1: ");
mostrar_mapa(M1);
/*Muestra:
d septimo
e quinto
b primero
A cuarto
c segundo
a sexto
* */
System.out.println("\nFuncion putAll");
M2.putAll(M1);
System.out.println("M2: ");
mostrar_mapa(M2);
/*Muestra:
d septimo
e quinto
b primero
c segundo
64 José Gonzalo Espejo Cuba
GUIA DE JAVA
A cuarto
a sexto
* */
}
}
put(dato1,dato2) Introduce un par de datos, el dato1 sera la llave la cual será la única, es decir que el
contenedor no almacenara datos repetidos en el primer parámetro.
putAll(C) Inserta el contenido de la collecion C en el mapa.
keySet().iterator() Devuelve un iterador que apunta a las llaves.
values().iterator() Devuelve un iterador que apunta al contenido de los mapas.
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class eliminacion_datos {
public static void mostrar_mapa(Map<Character,String> X){
Iterator<String>contenido=X.values().iterator();
for(Iterator<Character> llave=X.keySet().iterator();llave.hasNext();)
System.out.println(llave.next()+" "+contenido.next());
}
public static void main(String args[]){
//CREACION DE MAPAS
Map<Character,String> A=new HashMap<Character,String>();
//Introduciendo datos aL mapa A
A.put('b', "primero");
A.put('c', "segundo");
A.put('a', "tercero");
A.put('A', "cuarto");
A.put('e', "quinto");
A.put('d', "septimo");
System.out.println("\nFUNCION REMOVE");
A.remove('h');
System.out.println("Eliminando el elemento de llave h");
mostrar_mapa(A);
/*Muestra:
d septimo
e quinto
b primero
A cuarto
c segundo
a sexto
* */
System.out.println("Eliminando el elemento de llave b");
A.remove('b');
mostrar_mapa(A);
/*Muestra:
d septimo
e quinto
A cuarto
c segundo
a sexto
* */
System.out.println("\nFUNCION CLEAR");
A.clear();
System.out.println("Eliminando todos los elementos");
mostrar_mapa(A);
José Gonzalo Espejo Cuba 65
GUIA DE JAVA
/*Muestra:
* */
}
}
remove(dato) Elimina el dato si es que se encuentra en el mapa.
clear() Elimina todos los datos del mapa.
import java.util.HashMap;
import java.util.Map;
public class longitud_mapa {
public static void main(String args[]){
//CREACION DE MAPAS
Map<Character,String> A=new HashMap<Character,String>();
//Introduciendo datos aL mapa A
A.put('b', "primero");
A.put('c', "segundo");
A.put('a', "tercero");
A.put('a', "cuarto");
A.put('e', "quinto");
A.put('d', "septimo");
import java.util.HashMap;
import java.util.Map;
public class datos_del_mapa {
public static void main(String args[]){
//CREACION DE MAPAS
Map<Character,String> A=new HashMap<Character,String>();
//Introduciendo datos aL mapa A
A.put('b', "primero");
A.put('c', "segundo");
A.put('a', "tercero");
A.put('a', "cuarto");
A.put('e', "quinto");
A.put('d', "septimo");
System.out.println("FUNCION GET");
System.out.println(A.get('b'));//primero
System.out.println(A.get('a'));//cuarto
System.out.println("\nFUNCION CONTAINSKEY");
if(A.containsKey('a'))//El mapa contiene la llave 'a'?
System.out.println("Si, el mapa contiene la llave 'a'");
66 José Gonzalo Espejo Cuba
GUIA DE JAVA
else
System.out.println("No, la llave 'a' no se encuentra en el mapa");
//Muestra: Si, el mapa contiene la llave 'a'
if(A.containsKey('t'))//El mapa contiene la llave 't'?
System.out.println("Si, el mapa contiene la llave 't'");
else
System.out.println("No, la llave 't' no se encuentra en el mapa");
//Muestra: No, la llave 't' no se encuentra en el mapa
System.out.println("\nFUNCION CONTAINSVALUE");
if(A.containsValue("segundo"))//El mapa contiene el elemento "segundo"?
System.out.println("Si, el mapa contiene el elemento \"segundo\"");
else
System.out.println("No, el contenido \"segundo\" no se encuentra en el mapa");
//Muestra: Si, el mapa contiene el contenido "segundo"
if(A.containsValue('t'))//El mapa contiene el elemento 't'?
System.out.println("Si, el mapa contiene el elemento 't'");
else
System.out.println("No, el contenido 't' no se encuentra en el mapa");
//Muestra: No, el contenido 't' no se encuentra en el mapa
}
}
get(llave) Devuelve el contenido del mapa que esta señalado por una llave.
containsKey(llave) Devuelve true (verdadero) si el mapa contiene la llave. En caso contrario devuelve false
(falso).
containsValue(dato) Devuelve true (verdadero) si el mapa contiene el dato en algún contenido de las llaves. En
caso contrario devuelve false (falso).
José Gonzalo Espejo Cuba 67
GUIA DE JAVA
7 ALGORITMOS DE JAVA
pos=Arrays.binarySearch(vec,9);//Buscando el dato 9
System.out.println("El dato 9 se encuentra en la posicion: "+pos);// 3
pos=Arrays.binarySearch(vec,0,3,9);//Buscando el dato 9 en el rango [0,3)
System.out.println("El dato 9 se encuentra en la posicion: "+pos);// -4
pos=Arrays.binarySearch(vec,20);//Buscando el dato 20
System.out.println("El dato 9 se encuentra en la posicion: "+pos);// 7
pos=Arrays.binarySearch(vec,17);//Buscando el dato 17
System.out.println("El dato 9 se encuentra en la posicion: "+pos);// -7
}
}
Arrays.binarySearch(A[],dato) Donde A[] es un array. La función binarySearch busca el dato y
devuelve un entero que representa la posición en la que esta el
dato. Si el dato buscado no se encuentra en el array, entonces
dicha función devuelve un número entero negativo. El array debe
ser ordenado antes de usar la búsqueda binaria.
68 José Gonzalo Espejo Cuba
GUIA DE JAVA
Arrays.binarySearch(A[],dato,ini,fin) Donde A[] es un array, ini y fin son enteros no negativos (ini<fin).
La función binarySearch busca el dato en el rango [ini, fin) y
devuelve un entero que representa la posición en la que esta el
dato. Si el dato buscado no se encuentra en el array, entonces
dicha función devuelve un número entero negativo. El array debe
ser ordenado antes de usar la búsqueda binaria.
import java.util.Collections;
import java.util.Vector;
public class Copy_collections {
public static void mostrar(Vector<Integer> v) {
for(int i=0;i<v.size();i++)
System.out.print(v.get(i)+" ");
System.out.println();
}
public static void main(String[] args) {
Vector<Integer> vec1=new Vector<Integer>();
vec1.add(18); vec1.add(12); vec1.add(20); vec1.add(6); vec1.add(9);
vec1.add(3); vec1.add(11); vec1.add(26); vec1.add(2);
}
}
Collections.copy(A,B) Donde A y B son colecciónes. La función copy copia el contenido de B en A.
Previamente el tamaño de A debe ser ajustado al tamaño de B.
import java.util.Arrays;
public class Copy_arrays {
public static void mostrar(int x[]){
for(int i=0;i<x.length;i++)
System.out.print(x[i]+" ");
System.out.println();
}
public static void main(String[] args) {
int vec[]={18, 12, 20, 6, 9, 3, 11, 26, 2};
int copia1[],copia2[],copia3[],copia4[];
System.out.println("FUNCION COPYOF");
copia1=Arrays.copyOf(vec, 3);//Copiando los 3 primeros elementos de vec en copia1
mostrar(copia1);//Muestra: 18 12 20
copia2=Arrays.copyOf(vec, 7);//Copiando los 7 primeros elementos de vec en copia2
mostrar(copia2);//Muestra: 18 12 20 6 9 3 11
System.out.println("FUNCION COPYOFRANGE");
copia3=Arrays.copyOfRange(vec, 2, 7);//Copiando desde la posicion 2 hasta la 7
mostrar(copia3);//Muestra: 20 6 9 3 11
copia4=Arrays.copyOfRange(vec, 3, 5);//Copiando desde la posicion 2 hasta la 7
mostrar(copia4);//Muestra: 6 9
}
}
Arrays.copyOf(A[],n) Donde A[] es un array y n es un entero no negativo, la función copyOf copia
los n primeros elementos de A, y devuelve un nuevo array[] con dichos
elementos.
Arrays.copyOfRange(A[],ini,fin) Donde A[] es un array, ini y fin son enteros no negativos, la función
copyOfRange copia los elementos de A desde la posición ini hasta la
posición fin, y devuelve un nuevo array[] con dichos elementos.
import java.util.Collections;
import java.util.Vector;
public class Disjoint_Collections {
public static void main(String[] args) {
Vector<Integer> vec1,vec2,vec3;
vec1=new Vector<Integer>();
vec2=new Vector<Integer>();
vec3=new Vector<Integer>();
vec1.add(11);vec1.add(18);vec1.add(53);
vec2.add(12);vec2.add(20);vec2.add(13);
vec3.add(11);vec3.add(24);vec3.add(13);
if(Collections.disjoint(vec1, vec2))
System.out.println("vec1 y vec2 son disjuntos");
else
System.out.println("vec1 y vec2 tienen algun elemento en comun");
//Muestra: vec1 y vec2 son disjuntos
70 José Gonzalo Espejo Cuba
GUIA DE JAVA
if(Collections.disjoint(vec1, vec3))
System.out.println("vec1 y vec3 son disjuntos");
else
System.out.println("vec1 y vec3 tienen algun elemento en comun");
//Muestra: vec1 y vec3 tienen algun elemento en comun
}
}
Collections.disjoint(A, B) Donde A y B son colecciones. La función disjoint devuelve true (verdadero) si las
colecciones son disjuntas, es decir no tienen ningún elemento en común. Si existe
algún elemento que tengan A y B entonces disjoint devulve false (falso).
import java.util.Arrays;
public class Equals_arrays {
public static void main(String[] args) {
int a[]={25,11,19,86,7,2,10};
int b[]={25,11,19,86,7,2,10};
int c[]={25,11,86,19,7,2,10};
if(Arrays.equals(a, b))
System.out.println("Los vectores a y b son iguales");
else
System.out.println("Los vectores a y b son diferentes");
//Muestra: Los vectores a y b son iguales
if(Arrays.equals(a, c))
System.out.println("Los vectores a y c son iguales");
else
System.out.println("Los vectores a y c son diferentes");
//Muestra: Los vectores a y c son diferentes
}
}
Arrays.equals(A[], B[]) Donde A[] y B[] son arrays, la función equals, devuelve true (verdadero) si los arrays A
y B tienen los mismos elementos y en el mismo orden. Caso contrario devuelve false
(falso).
import java.util.Collections;
import java.util.Vector;
public class Fill_collections {
public static void mostrar(Vector<Integer> v) {
for(int i=0;i<v.size();i++)
System.out.print(v.get(i)+" ");
System.out.println();
}
public static void main(String[] args) {
Vector<Integer> V=new Vector<Integer>();
V.setSize(10);//Ajustando el tamaño del vector a 10
mostrar(V);//Muestra: null null null null null null null null null null
Collections.fill(V, 24);//Llenando el vector con el numero 24
mostrar(V);//Muestra: 24 24 24 24 24 24 24 24 24 24
}
}
Collections.fill(V,dato) Donde V es una colección. La función fill llena los espacios de la colección con un dato.
José Gonzalo Espejo Cuba 71
GUIA DE JAVA
import java.util.Arrays;
public class Fill_arrays {
public static void mostrar(int x[]){
for(int i=0;i<x.length;i++)
System.out.print(x[i]+" ");
System.out.println();
}
public static void main(String[] args) {
int V[]=new int[10];
Arrays.fill(V, 24);//Llenando el vector con el numero 24
mostrar(V);//Muestra: 24 24 24 24 24 24 24 24 24 24
}
}
Arrays.fill(V[], dato) Donde V[] es un array. La función fill llena los espacios del array con un dato.
import java.util.Collections;
import java.util.Vector;
public class JavaApplication17 {
public static void main(String[] args) {
Vector<Character> v=new Vector<Character>();
v.add('r');v.add('w');v.add('r');v.add('a');v.add('c');v.add('r');
int n=Collections.frequency(v, 'r');
System.out.println("Numero de datos iguales a 'r': "+n);// 3
}
}
Collections.frequency(A, dato) Donde A es una colección. La función frequency devuelve un entero que
representa el número de veces en la que el dato aparece en la colección.
import java.util.Collections;
import java.util.Vector;
public class Max_min_Collections {
public static void main(String[] args) {
Vector<Integer>V=new Vector<Integer>();
V.add(18); V.add(12); V.add(20); V.add(6); V.add(9); V.add(3); V.add(11);
System.out.println("El mayor de los elementos es "+Collections.max(V));// 20
System.out.println("El minimo de los elementos es "+Collections.min(V));// 3
}
}
Collections.max(A) Donde A es una colección. La función max busca y devuelve el mayor (lexicograficamente) de
los datos de A.
Collections.min(A) Donde A es una colección. La función min busca y devuelve el menor (lexicograficamente) de
los datos de A.
import java.util.Collections;
import java.util.Vector;
public class Replace_Collectios {
public static void mostrar_Vector(Vector <Integer> V){
72 José Gonzalo Espejo Cuba
GUIA DE JAVA
for(int i=0;i<V.size();i++)
System.out.print(V.elementAt(i) +" ");
System.out.println();
}
public static void main(String[] args) {
Vector<Integer>v=new Vector<Integer>();
v.add(11); v.add(17); v.add(4); v.add(12); v.add(4); v.add(11); v.add(20);
mostrar_Vector(v);//Muestra: 11 17 4 12 4 11 20
Collections.replaceAll(v, 4, 32);//Reemplazando el dato 4 por el dato 32
mostrar_Vector(v);//Muestra: 11 17 32 12 32 11 20
Collections.replaceAll(v, 12, 24);//Reemplazando el dato 12 por el dato 24
mostrar_Vector(v);//Muestra: 11 17 32 24 32 11 20
}
}
Collections. replaceAll(A, anterior, nuevo) Donde A es una colección, anterior y nuevo son datos. La
función replaceAll busca el dato anterior en A y reemplaza
los datos por los nuevos.
import java.util.Collections;
import java.util.Vector;
public class Reverse_Collections {
public static void mostrar_Vector(Vector <Integer> V){
for(int i=0;i<V.size();i++)
System.out.print(V.elementAt(i) +" ");
System.out.println();
}
public static void main(String[] args) {
Vector<Integer>v=new Vector<Integer>();
v.add(11); v.add(17); v.add(4); v.add(12); v.add(14); v.add(30); v.add(20);
mostrar_Vector(v);//Muestra: 11 17 4 12 14 30 20
Collections.reverse(v);
mostrar_Vector(v);//Muestra: 20 30 14 12 4 17 11
}
}
Collections. reverse(A) Donde A es una colección. La función reverse invierte el orden de los datos en A.
import java.util.Collections;
import java.util.Vector;
public class Rotate_collections {
public static void mostrar_Vector(Vector <Integer> V){
for(int i=0;i<V.size();i++)
System.out.print(V.elementAt(i) +" ");
System.out.println();
}
public static void main(String[] args) {
Vector<Integer>v=new Vector<Integer>();
v.add(11); v.add(17); v.add(4); v.add(12); v.add(14); v.add(30); v.add(20);
mostrar_Vector(v);//Muestra: 11 17 4 12 14 30 20
Collections.rotate(v, -2); //Rotando dos posiciones a la izquierda
mostrar_Vector(v);//Muestra: 4 12 14 30 20 11 17
Collections.rotate(v, 3); //Rotando tres posiciones a la derecha
mostrar_Vector(v);//Muestra: 20 11 17 4 12 14 30
}
}
José Gonzalo Espejo Cuba 73
GUIA DE JAVA
Collections.rotate(A,k) Donde A es una colección y k es un entero. La función rotate rota los elementos, si k es
negativo rota los elementos k posiciones a la izquierda, si k es positivo rota los
elementos k posiciones a la derecha.
import java.util.Collections;
import java.util.Vector;
public class Java_Collections_sort {
public static void mostrar_Vector(Vector <Integer> V){
for(int i=0;i<V.size();i++)
System.out.print(V.elementAt(i) +" ");
System.out.println();
}
public static void main(String[] args) {
Vector<Integer>V=new Vector<Integer>();
V.add(12); V.add(3); V.add(34); V.add(24);
mostrar_Vector(V);//Muestra: 12 3 34 24
Collections.sort(V);//Orden ascendente
mostrar_Vector(V);//Muestra: 3 12 24 34
Collections.sort(V, Collections.reverseOrder());//Orden descendete
mostrar_Vector(V);//34 24 12 3
}
}
Collections.sort(A) Donde A es una colección. La función sort ordena los elementos de A en forma
ascendente (orden lexicografico). Podemos añadir un parámetro para que los datos se
ordenen en orden descendente con Collections.reverseOrder().
import java.util.Arrays;
public class Algoritmosort_arrays {
public static void mostrar(int v[]){
for(int i=0;i<v.length;i++)
System.out.print(v[i]+" ");
System.out.println();
}
public static void main(String[] args) {
int vec1[]={27, 6, 46, 9,10};
int vec2[]={30, 11, 20, 13, 55, 18};
System.out.print("vec1: ");
mostrar(vec1);//Muestra: 27 6 46 9 10
System.out.print("vec2: ");
mostrar(vec2);//Muestra: 30 11 20 13 55 18
System.out.print("vec1: ");
mostrar(vec1);//Muestra: 27 6 46 9 10
System.out.print("vec2: ");
mostrar(vec2);//Muestra: 30 11 20 13 55 18
}
}
Arrays.sort(A[]) Donde A[] es un array. La función sort ordena los datos de A en forma ascedente.
74 José Gonzalo Espejo Cuba
GUIA DE JAVA
Arrays.sort(A[],ini,fin) Donde A[] es un array, ini y fin son enteros no negativos (ini<fin). La función sort
ordena los datos de A en forma ascedente en el rango [ini, fin).
import java.util.Collections;
import java.util.Vector;
public class Shuffle {
public static void mostrar(Vector<Integer> v){
for(int i=0;i<v.size();i++)
System.out.print(v.get(i)+" ");
System.out.println();
}
public static void main(String[] args) {
Vector <Integer> vec=new Vector<Integer>();
Collections.addAll(vec, 1,2,3,4,5,6,7,8,9,10);
mostrar(vec);//Muestra: 1 2 3 4 5 6 7 8 9 10
Collections.shuffle(vec);
mostrar(vec);//Muestra: 10 5 2 6 3 4 1 8 9 7
Collections.shuffle(vec);
mostrar(vec);//Muestra: 9 4 5 3 1 6 2 8 10 7
}
}
Collections.shuffle(A) Donde A es una colección. La función shuffle ordena los elementos de A aleatoriamente.
import java.util.Collections;
import java.util.Vector;
public class Swap_collections {
public static void mostrar_Vector(Vector <Integer> V){
for(int i=0;i<V.size();i++)
System.out.print(V.elementAt(i) +" ");
System.out.println();
}
public static void main(String[] args) {
Vector<Integer>v=new Vector<Integer>();
v.add(11); v.add(17); v.add(4); v.add(12); v.add(14); v.add(30); v.add(20);
mostrar_Vector(v);//Muestra: 11 17 4 12 14 30 20
//Intercambia el dato de la posicion 6 con el dato de la posicion 3
Collections.swap(v, 6, 3);
mostrar_Vector(v);//Muestra: 11 17 4 20 14 30 12
//Intercambia el dato de la posicion 2 con el dato de la posicion 5
Collections.swap(v, 2, 5);
mostrar_Vector(v);//Muestra: 11 17 30 20 14 4 12
}
}
Collections.swap(A,i,j) Donde A es una colección, i y j son enteros no negativos. La función swap intercambia
el dato que se encuentra en la posición i por el dato que se encuentra en la posición j.
import java.util.Arrays;
public class Tostring {
public static void main(String[] args) {
int x[]={25, 11, 14, 10, 16};
José Gonzalo Espejo Cuba 75
GUIA DE JAVA
String cadena=Arrays.toString(x);
System.out.println(cadena);//Muestra: [25, 11, 14, 10, 16]
}
}
Arrays.toString(A[]) Donde A es una array. La función toString transforma un array en una cadena.
class tiempo{
int hora;
int minutos;
int segundos;
public tiempo(){}
public tiempo(int hh, int mm,int ss){
hora=hh;
minutos=mm;
segundos=ss;
}
public void mostrar_tiempo(){
System.out.printf("%02d:%02d:%02d\n",hora,minutos,segundos);
}
}
class comparador_tiempo implements Comparator<tiempo>{
public int compare(tiempo t1,tiempo t2){
int nt1=(t1.hora*3600)+(t1.minutos*60)+(t1.segundos);
int nt2=(t2.hora*3600)+(t2.minutos*60)+(t2.segundos);
return nt1-nt2;
}
}
public class Maneja_comparador_1 {
public static void mostrar(Vector<tiempo> v){
for(int i=0;i<v.size();i++)
v.get(i).mostrar_tiempo();
}
public static void main(String[] args) {
Vector<tiempo>vt=new Vector<tiempo>();
vt.add(new tiempo(13,11,11));
vt.add(new tiempo(7,19,14));
vt.add(new tiempo(1,12,20));
vt.add(new tiempo(13,11,10));
vt.add(new tiempo(11,50,20));
mostrar(vt);
/*MUESTRA:
13:11:11
07:19:14
01:12:20
13:11:10
11:50:20
*/
System.out.println("\nORDENAMIENTO SORT");
Collections.sort(vt, new comparador_tiempo());
mostrar(vt);
/*MUESTRA:
01:12:20
07:19:14
11:50:20
13:11:10
13:11:11
*/
76 José Gonzalo Espejo Cuba
GUIA DE JAVA
System.out.println("\nBUSQUEDA");
int b1=Collections.binarySearch(vt, new tiempo(13,11,10), new comparador_tiempo());
int b2=Collections.binarySearch(vt, new tiempo(12,0,0), new comparador_tiempo());
System.out.println("b1: "+b1);//3
System.out.println("b2: "+b2);//-4
System.out.println("\nMAX Y MIN");
tiempo may=Collections.max(vt, new comparador_tiempo());
tiempo men=Collections.min(vt, new comparador_tiempo());
System.out.println("Tiempo mayor:");
may.mostrar_tiempo();//Muestra: 13:11:11
System.out.println("Tiempo menor:");
men.mostrar_tiempo();//Muestra: 01:12:20
}
}
import java.util.Arrays;
import java.util.Comparator;
class tiempo{
int hora;
int minutos;
int segundos;
public tiempo(){}
public tiempo(int hh, int mm,int ss){
hora=hh;
minutos=mm;
segundos=ss;
}
public void mostrar_tiempo(){
System.out.printf("%02d:%02d:%02d\n",hora,minutos,segundos);
}
}
class comparador_tiempo implements Comparator<tiempo>{
public int compare(tiempo t1,tiempo t2){
int nt1=(t1.hora*3600)+(t1.minutos*60)+(t1.segundos);
int nt2=(t2.hora*3600)+(t2.minutos*60)+(t2.segundos);
return nt1-nt2;
}
}
public class Maneja_comparador_2 {
public static void mostrar(tiempo x[]){
for(int i=0;i<x.length;i++)
x[i].mostrar_tiempo();
}
public static void main(String[] args) {
tiempo vt[]=new tiempo[5];
vt[0]=new tiempo(13,11,11);
vt[1]=new tiempo(7,19,14);
vt[2]=new tiempo(1,12,20);
vt[3]=new tiempo(13,11,10);
vt[4]=new tiempo(11,50,20);
mostrar(vt);
/*MUESTRA:
13:11:11
07:19:14
01:12:20
13:11:10
11:50:20
*/
José Gonzalo Espejo Cuba 77
GUIA DE JAVA
System.out.println("\nORDENAMIENTO SORT");
Arrays.sort(vt, new comparador_tiempo());
mostrar(vt);
/*MUESTRA:
01:12:20
07:19:14
11:50:20
13:11:10
13:11:11
*/
System.out.println("\nBUSQUEDA");
int b1=Arrays.binarySearch(vt, new tiempo(13,11,10), new comparador_tiempo());
int b2=Arrays.binarySearch(vt, new tiempo(12,0,0), new comparador_tiempo());
System.out.println("b1: "+b1);//3
System.out.println("b2: "+b2);//-4
}
}
78 José Gonzalo Espejo Cuba
GUIA DE JAVA
8 MISCELANEA
8.2 EXCEPCIONES
8.2.1 EXCEPCION EN LA LECTURA DE ENTEROS
import java.util.InputMismatchException;
import java.util.Scanner;
public class ExcepcionesDeEntrada {
public static void main(String[] args) {
Scanner leer=new Scanner(System.in);
int numero;
try{
numero=leer.nextInt();
System.out.println("El numero leido es: "+numero);
}
catch(InputMismatchException error){
System.out.println("Lectura incorrecta");
}
}
}
Este programa lee un dato entero, si el dato introducido no es un entero de tipo int, es decir introducimos una cadena o un
numero que sobrepase la capacidad del tipo int, la lectura será incorrecta. El bloque try analiza el proceso de la entrada y
al fallar es enviado a catch.
import java.util.Scanner;
public class Division_entre_cero {
//Metodo que realiza la division de dos numeros
public static int cociente(int num,int den)throws ArithmeticException{
return num/den;
José Gonzalo Espejo Cuba 79
GUIA DE JAVA
}
public static void main(String[] args) {
Scanner leer=new Scanner(System.in);
int numerador,denominador;
try{
numerador=leer.nextInt();
denominador=leer.nextInt();
System.out.println("El cociente es: "+cociente(numerador,denominador));
}
catch(ArithmeticException error){
System.out.println("Error!! division entre cero");
}
}
}
Este programa realiza la división entre un numerador y un denominador, el método cociente utiliza una palabra reservada
throws que indica que el método lanza una posible excepción, en este caso de tipo aritmético (ArithmeticException). Si
el error aritmético se cumple, esta excepción es atrapada por catch.
import java.util.Date;
public class Java_date {
static String
dia[]={"Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado"};
public static void main(String[] args) {
Date fecha1,fecha2,fecha3,fecha4;
fecha1=new Date();//Creamos el objeto Date con la fecha actual
System.out.println("FUNCIONES GET");
int ind=fecha1.getDay();//Obtiene un entero que representa el nombre del dia
int dd=fecha1.getDate();//Obtiene un entero que representa el dia
int mm=fecha1.getMonth();//Obtiene un entero que representa el mes
int yy=fecha1.getYear()+1900;//Obtiene un entero que representa el año
int hora=fecha1.getHours();//Obtiene un entero que representa la hora
int min=fecha1.getMinutes();//Obtiene un entero que representa los minutos
int sec=fecha1.getSeconds();//Obtiene un entero que representa los segundos
long total_milisec=fecha1.getTime();//Obtiene un entero que representa milisec
System.out.println("\nFUNCIONES SET");
fecha3=new Date();
fecha3.setHours(11);//Establece la hora
fecha3.setMinutes(18);//Establece los minutos
fecha3.setSeconds(43);//Establece los segundos
fecha3.setDate(25);//Establece la fecha
fecha3.setMonth(10);//Establece el mes
fecha3.setYear(2024-1900);//Establece el año
System.out.println(fecha3);//Muestra: Mon Nov 25 11:18:43 CLST 2024
fecha4=fecha1;//Asignacion de fechas
System.out.println("\nCOMPARACION DE FECHAS");
if(fecha1.equals(fecha4))
System.out.println("La fecha 1 es igual a la fecha 4");
System.out.println(fecha1.compareTo(fecha2));//Muestra: 1
System.out.println(fecha1.compareTo(fecha3));//Muestra: -1
System.out.println(fecha1.compareTo(fecha4));//Muestra: 0
import java.util.Calendar;
import java.util.Date;
public class JavaCalendar {
static String
dia[]={"Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado"};
public static void display(Date D){
String dn=dia[D.getDay()];
int dd=D.getDate();
int mm=D.getMonth()+1;
int yy=D.getYear()+1900;
int hh=D.getHours();
int mi=D.getMinutes();
int ss=D.getSeconds();
System.out.printf("%s %02d/%02d/%d %02d:%02d:%02d\n",dn,dd,mm,yy,hh,mi,ss);
}
public static void main(String[] args) {
Calendar calendario=Calendar.getInstance();
display(calendario.getTime());//Muestra: Martes 10/12/2013 19:57:50
System.out.println("\nMETODO GET");
System.out.println("Hora: "+calendario.get(Calendar.HOUR_OF_DAY));//19
System.out.println("Minutos: "+calendario.get(Calendar.MINUTE));//57
System.out.println("Segundos: "+calendario.get(Calendar.SECOND));//50
System.out.println("Dia de la semana:
"+dia[calendario.get(Calendar.DAY_OF_WEEK)-1]);//Martes
System.out.println("Dia del mes: "+calendario.get(Calendar.DAY_OF_MONTH));//10
System.out.println("Semana del mes: "+calendario.get(Calendar.WEEK_OF_MONTH));//3
System.out.println("Semana del año: "+calendario.get(Calendar.WEEK_OF_YEAR));//50
System.out.println("Mes del año: "+(calendario.get(Calendar.MONTH)+1));//12
System.out.println("Año: "+(calendario.get(Calendar.YEAR)));//2013
System.out.println("Milisegundos: "+calendario.getTimeInMillis());//1386701870521
82 José Gonzalo Espejo Cuba
GUIA DE JAVA
System.out.println("\nMETODO ADD");
calendario.add(calendario.DATE, 5);//Avanza 5 dias
display(calendario.getTime());//Muestra: Domingo 15/12/2013 19:57:50
calendario.add(calendario.DATE, -20);//Retrocede 20 dias
display(calendario.getTime());//Muestra: Lunes 25/11/2013 19:57:50
calendario.add(calendario.MONTH, 4);//Avanza 4 meses
display(calendario.getTime());//Muestra: Martes 25/03/2014 19:57:50
calendario.add(calendario.YEAR, 1);//Avanza 1 año
display(calendario.getTime());//Muestra: Miercoles 25/03/2015 19:57:50
calendario.add(calendario.HOUR, -3);//Retrocede 3 horas
display(calendario.getTime());//Muestra: Miercoles 25/03/2015 16:57:50
calendario.add(calendario.MINUTE, -10);//Retrocede 10 minutos
display(calendario.getTime());//Muestra: Miercoles 25/03/2015 16:47:50
calendario.add(calendario.SECOND, 1000);//Avanza 1000 segundos
display(calendario.getTime());//Muestra: Miercoles 25/03/2015 17:04:30
System.out.println("\nMETODO SET");
calendario.set(Calendar.MONTH, 7);//Establece al mes 8 agosto
display(calendario.getTime());//Muestra: Martes 25/08/2015 17:04:30
calendario.set(2003, 5, 6);//Establece el año, mes y dia respectivamente
display(calendario.getTime());//Muestra: Viernes 06/06/2003 17:04:30
calendario.set(2004, 10, 25, 21, 30);//Establece año, mes, dia, hora y minutos
respectivamente
display(calendario.getTime());//Muestra: Jueves 25/11/2004 21:30:30
calendario.set(2004, 10, 25, 21, 30, 54);//Establece año, mes, dia, hora,
minutos y segundos respectivamente
display(calendario.getTime());//Muestra: Jueves 25/11/2004 21:30:54
System.out.println("\nMETODO CLEAR");
calendario.clear(calendario.MINUTE);//Quitando los minutos
display(calendario.getTime());//Muestra: Jueves 25/11/2004 21:00:54
calendario.clear();//Quitando todos los datos
display(calendario.getTime());//Muestra: Jueves 01/01/1970 00:00:00
}
}
getTime() Obtiene un objeto de tipo Date.
get(campo) Donde campo es un entero. La función get obtiene el campo (hora, mes, minutos,
mes, etc.) de un calendario.
getTimeInMillis() Obtiene los milisegundos transcurridos desde el 1ro de Enero de 1970 00:00:00
add(campo, k) Donde campo es un entero. La función add añade o sustrae k unidades al campo
(hora, mes, minutos, mes, etc.) de un calendario.
set(campo, k) Donde campo y k son enteros. La función set establece el valor k a un
determinado campo (hora, mes, minutos, mes, etc.) de un calendario.
set(año,mes,dia) Donde año, mes y dia son enteros. La función set establece el año, mes y dia.
set(año,mes,dia,hora,min) Donde año, mes, dia, hora y min son enteros. La función set establece el año,
mes, dia, hora y minutos.
set(año,mes,dia,hora,min,sec) Donde año, mes, dia, hora y min son enteros. La función set establece el año,
mes, dia, hora, minutos y segundos.
clear(campo) Donde campo es un entero. La función clear borra el campo (hora, mes, minutos,
mes, etc.) de un calendario.
clear() Borra todos los campos y los establece a 1ro de Enero de 1970 00:00:00
A.compareTo(B) Donde A y B son Calendars. La función compareTo devuelve entero tal que:
0: si A es igual a B.
>0: si A es mayor a B.
<0: si A es menor a B.
José Gonzalo Espejo Cuba 83
GUIA DE JAVA
import java.util.Calendar;
import java.util.GregorianCalendar;
public class JavaGregorianCalendar {
public static void main(String[] args) {
Calendar cal=GregorianCalendar.getInstance();
//CODIGO
}
}
Gregorian Calendar es el sistema de calendario estándar en el mundo, al menos en el mundo occidental que comprende
Europa, Norte, Centro y SurAmérica y muchos otros países.
import java.text.DecimalFormat;
public class Decimalformat {
public static void main(String[] args) {
double pi=Math.PI;
System.out.println(pi);//Muestra: 3.141592653589793
DecimalFormat df;
String x;
System.out.println("Redondeo a 3 decimales");
df=new DecimalFormat("#.###");
x=df.format(pi);
System.out.println(x);//Muestra: 3,142
System.out.println("Redondeo a 8 decimales");
df=new DecimalFormat("#.########");
x=df.format(pi);
System.out.println(x);//Muestra: 3,14159265
}
}
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Redondeo_bigdecimal {
public static void main(String[] args) {
double pi=Math.PI;
System.out.println(pi);//Muestra: 3.141592653589793
BigDecimal bd;
System.out.println("Redondeo a 3 decimales");
bd= new BigDecimal(pi).setScale(3, RoundingMode.HALF_EVEN);
pi = bd.doubleValue();
System.out.println(pi);//Muestra: 3.142
System.out.println("Redondeo a 8 decimales");
pi=Math.PI;
bd= new BigDecimal(pi).setScale(8, RoundingMode.HALF_EVEN);
pi = bd.doubleValue();
System.out.println(pi);//Muestra: 3.14159265
}
}
84 José Gonzalo Espejo Cuba
GUIA DE JAVA
int num1=155;
binario=Integer.toBinaryString(num1);
octal=Integer.toOctalString(num1);
hexa=Integer.toHexString(num1).toUpperCase();
bits=Integer.bitCount(num1);
System.out.println(binario);//Imprime: 10011011
System.out.println(octal);//Imprime: 233
System.out.println(hexa);//Imprime: 9B
System.out.println("Bits encendidos: "+bits);//5
José Gonzalo Espejo Cuba 85
GUIA DE JAVA
long num2=300;
binario=Long.toBinaryString(num2);
octal=Long.toOctalString(num2);
hexa=Long.toHexString(num2).toUpperCase();
bits=Long.bitCount(num2);
System.out.println(binario);//Imprime: 100101100
System.out.println(octal);//Imprime: 454
System.out.println(hexa);//Imprime: 12C
System.out.println("Bits encendidos: "+bits);//4
import java.math.*;
import java.util.*;
class Main {
public static void main(String[] args) {
Scanner leer =new Scanner(System.in);
}
}