Sie sind auf Seite 1von 115

Java Fundamentals Programming

Ing. René Segovia. Ing. Manuel Freire.

Mayo 2015

1
1
AGENDA:
1. Introducción
a. Historia
b. Paradigma OO- diagramación
1. Encapsulamiento
2. Herencia
3. Polimorfismo
c. Paquetes
d. Identificadores
e. Configuración Ambiente Programación

2
AGENDA:
2. Conceptos Básicos
a. Variables
1. Tipos de Datos
2. Arreglos
3. Tipos Enum
b. Operadores
1. Asignación
2. Aritméticos
3. Relaciones y Condiciones
4. Desplazamiento

3
AGENDA:
c. Expresiones y Sentencias
d. Control de Flujo
1. Sentencia if-else
2. Sentencia switch
3. Sentencia for
4. Sentencia while – do while
5. Sentencia break, continue, return
e. Conversión de Datos (Casting)

4
AGENDA:
3. Conceptos Avanzados
a. Modificadores de Acceso
b. Clases e InnerClases
c. Interfaces y Clases Abstractas
d. Manejo de Excepciones
e. Lectura desde Teclado
f. Applets

5
AGENDA:
4. Colecciones
a. Interfaces
1. Collection
2. Set / Map / List / Queue
b. Implementaciones
1. Se / Map / List / Queue
c. Wrappers

6
Introducción
Java es un lenguaje de programación orientado a
Objetos desarrollado por Sun Microsystem S.A.
principios de los años 90. El lenguaje en sí mismo
toma mucha de su sintaxis de C y C++, pero tiene
un modelo de objetos más simple y elimina
herramientas de bajo nivel, que suelen inducir a
muchos errores, como la manipulación directa de
punteros o memoria.

7
Historia
 La tecnología Java se creó como una herramienta de
programación para ser usada en un proyecto de set-
top-box en una pequeña operación denominada the
Green Project en Sun Microsystems en el año 1991.

 El lenguaje se denominó inicialmente Oak (por un


roble que había fuera de la oficinade James Gosling),
luego pasó a denominarse Green y finalmente se
renombró a Java.

8
Distribuciones
 JDK 1.0 (January 23, 1996) Codename Oak. Initial
release.
 J2SE 1.2 (December8, 1998) Codename Playground.
 J2SE 1.3 (May 8, 2000) Codename Kestrel.
 J2SE 1.4 (February 6, 2002) Codename Merlin.
 J2SE 5.0 (September30, 2004) Codename Tiger.
 Java SE 6 (December11, 2006) Codename Mustang.
 Java SE 7 (July 28, 2011) Codename Dolphin.
 Java SE 8 (March, 2014)

9
Características
El lenguaje Java se creó con 5 objetivos principales:

1. Debería usar la metodología de la programación orientada a


objetos.
2. Debería permitir la ejecución de un mismo programa en
múltiples sistemas operativos.
3. Debería incluir por defecto soporte para trabajo en red.
4. Debería diseñarse para ejecutar código en sistemas remotos
de forma segura.
5. Debería ser fácil de usar y tomar lo mejor de otros lenguajes
orientados a objetos, como C++.

10
Industria Relacionada
 Son innumerables las compañías que desarrollan
aplicaciones para Java y/o están volcadas con esta
tecnología:
 La industria de la telefonía móvil está fuertemente
influenciada por la tecnología Java.
 El entorno de desarrollo Eclipse ha tomado un lugar
importante entre la comunidad de desarrolladores Java.
 La fundación Apache tiene también una presencia
importante en el desarrollo de bibliotecas y componentes
de servidor basados en Java.
 IBM, BEA, IONA, Oracle, JBOSS ,... son empresas con
grandes intereses y productos creados en y para Java.

11
Términos y Acrónimos
 El JRE (Java Runtime Environment, o
Entorno en Tiempo de Ejecución de Java) es el
software necesario para ejecutar cualquier aplicación
desarrollada para la plataforma Java.

 SDK de Java o JDK (Java Development Kit) es


una distribución en cuyo seno reside el JRE, e
incluye algunas herramientas como el compilador de
Java, el generador de documentación (Javadoc), el
depurador, etc.

12
Clase
 Una clase es una plantilla para la creación de objetos
de datos según un modelo predefinido. Las clases se
utilizan para representar entidades o conceptos,
como los sustantivos en el lenguaje. Cada clase es un
modelo que define un conjunto de variables -el
estado- y métodos apropiados para operar con dichos
datos -el comportamiento. Cada objeto creado a
partir de la clase se denomina instancia de la clase.

 Las clases permiten abstraer los datos y sus


operaciones asociadas al modo de una caja negra.

13
Objeto
 Es una unidad dentro de un programa que consta de un estado y de un
comportamiento, que a su vez constan respectivamente de datos
almacenados y de tareas realizables durante el tiempo de ejecución.
 En POO, un objeto es el resultado de la instanciación de una clase.
 Es aquello que puede ser observado, estudiado y aprendido, en
contraposición a la representación abstracta de ese objeto que se crea en
la mente a través del proceso de generalización.
 Un objeto en POO representa alguna entidad de la vida real, es decir,
alguno de los objetos que pertenecen al negocio con que estamos
trabajando o al problema con el que nos estamos enfrentando, y con los
que podemos interactuar. A través del estudio de ellos se adquiere el
conocimiento necesario para, mediante la abstracción y la
generalización, agruparlos según sus características en conjuntos. Estos
conjuntos determinan las clases de objetos con las que estamos
trabajando.

14
Programación Orientada a Objetos
 La programación orientada a objetos (POO) es una
forma especial de programar, más cercana a como
expresaríamos las cosas en la vida real que otros tipos
de programación.
 La programación orientada a objetos es un paradigma
de programación que usa objetos y sus interacciones
para diseñar aplicaciones y programas de
computadora.
 Está basado en varias técnicas, incluyendo herencia,
modularidad, polimorfismo y encapsulamiento.

15
Programación Orientada a Objetos
Los objetos son entidades que combinan estado,
comportamiento e identidad:
 El estado está compuesto de datos, será uno o varios
atributos a los que se habrán asignado unos valores
concretos (datos).
 El comportamiento está definido por los
procedimientos o métodos con que puede operar dicho
objeto, es decir, qué operaciones se pueden realizar con él.
 La identidad es una propiedad de un objeto que lo
diferencia del resto, dicho con otras palabras, es su
identificador (concepto análogo al de identificador de una
variable o una constante).

16
Principios de la POO
Los principios básicos de la programación orientada
objetos son:

 Abstracción
 Encapsulamiento.
 Herencia.
 Polimorfismo.

17
Abstracción
Expresa las características esenciales de un objeto y su
comportamiento, las cuales distinguen al objeto de los
demás. Se refiere al énfasis en el "¿qué hace?" más que en el
"¿cómo lo hace?"
Se aísla toda aquella información que no resulta relevante a
un determinado nivel de conocimiento.
Ejm: La gerencia de un taller mecánico necesita un sistema
para controlar los vehículos que ingresan a sus instalaciones.
Las características esenciales de la clase vehículo son: Marca,
Modelo, Color, Falla detectada, Nombre del Propietario,
Dirección del Propietario, etc.

18
Encapsulamiento
Describe la vinculación de unas operaciones y
estado a un objeto particular.
La encapsulación está íntimamente relacionada con
la ocultación de la información, definiendo qué
partes de un objeto son visibles y qué partes están
ocultas. De manera que sólo se pueda cambiar
mediante las operaciones definidas para ese
objeto.

19
Herencia
La herencia es un mecanismo que permite la
definición de una clase a partir de la definición de
otra ya existente. La herencia permite el
refinamiento o especialización de una clase
existente. La herencia es la característica clave de
los sistemas orientados a objeto para propiciar la
reusabilidad:

20
Herencia
Object public class Animal{

public void dormir(){
toString/ equals System.out.println(“animal durmiendo…”);
hashCode … }
public void comer(){
System.out.println(“animal comiendo…”);
Animal }
}

dormir / comer
toString / equals /
hashCode
public void dormir(){
System.out.println(“animal durmiendo…”);
Perro }
public void comer(){
System.out.println(“animal comiendo…”);
ladrar / dormir
dormir /comer }
21 toString / equals /
hashCode
Polimorfismo
Se refiere a la capacidad de poder invocar una
misma funcionalidad pero que dependiendo del
contexto de la invocación la implementación tiene
comportamiento diferente.
Ejm:
 int sumar (int num1, int num2);
 Matriz sumar (Matriz a, Matriz b);
 Complejo sumar (Complejocomp1, Complejocomp2);

22
Compilación
package ocjp.curso;

public class MiClase {


public static void main(String[] args) {
System.out.println("Mi Clase");
}
}
Compilar la clase desde el directorio curso:

D:\OCJP_8Compilacion\src\ocjp\curso> javac MiClase.java

23
Compilación
package ocjp.curso;

public class MiClase {


public static void main(String[] args) {
System.out.println("Mi Clase");
}
}
Compilar la clase desde el directorio src:

D:\OCJP_8Compilacion\src> javac ocjp/curso/MiClase.java

24
Compilación
Compilar la clase desde el directorio OCJP_8Compilacion y guardar los .class
en el directorio classes:
D:\OCJP_8Compilacion> javac -d classes src/ocjp/curso/MiClase.java

javac –d classes
-d directorio para
guardar los .class

25
Ejecución
Compilar la clase desde el directorio curso

D:\OCJP_8Compilacion\classes\ocjp\curso>
java MiClase

26
Ejecución
Compilar la clase desde el directorio classes

D:\OCJP_8Compilacion\classes>
java ocjp.curso.MiClase

27
Ejecución
Compilar la clase desde el directorio
OCJP_8Compilacion

D:\OCJP_8Compilacion>
java classes.ocjp.curso.MiClase
java classes/ocjp.curso.MiClase

java –cp classes


ocjp.curso.MiClase

java –classpath classes


ocjp.curso.MiClase
28
Jar
Crear un jar

D:\OCJP_8Compilacion\classes>

jar -cf MiJar2.jar ocjp

29
Jar
Usar jar en classpath.

D:\OCJP_8Compilacion>

java -cp classes/MiJar2.jar MiClase

30
Banderas de Compilación y
Ejecución
BANDERA EJEMPLO EXPLICACIÓN

-d javac -d dir1 ClaseA.java Compila la ClaseA y coloca


el .class en el directorio:
dir1.
-cp java –cp dir1 com.ClaseA Ejecuta la ClaseA, el
-classpath classpath está seteado en
dir1, por lo tanto es ahí
donde va a buscar el
com.ClaseA.
-cp java –cp dir1/MiJar.jar Ejecuta la ClaseA, el
-classpath com.ClaseA classpath está seteado en
dir1/MiJar.jar, por tanto en
MiJar.jar es donde va a
buscar el com.ClaseA

31
Paquetes
Un paquete implica una colección de clases, algo parecido
a una librería. En el uso, un paquete es un poco semejante
a un directorio. Si se pone una declaración de un paquete
en un archivo éste será sólo visible a otras clases en el
mismo paquete.

La palabra clave para definir un paquete es: package


Ejm:

package ec.edu.epn.cec.curso.java.modulo1;

32
La sentencia import
Permite usar una clase directamente con su nombre en
lugar de especificarla totalmente incluyendo el nombre
completo del paquete al que pertenece.

Ejm: La clase java.awt.Button normalmente se le


referencia simplemente como Button, pero para se
requiere haber puesto al inicio del archivo fuente la
siguiente línea:
import java.awt.*;

33
Constructores
• Los constructores son métodos especiales que se
ejecutan cuando creamos un objeto, mediante la palabra
reservada new
• Los constructores tienen el mismo nombre de la clase.
• Los constructores NO tienen tipo de retorno. Ni si
quiera void, ya que void es un tipo de retorno
• Si no especificamos un constructor, la clase tiene por
defecto un constructor que no recibe parámetros
(constructor vacío).

34
Constructores

35
Constructores

36
Identificadores
Los identificadores nombran variables, métodos, clases y objetos;
cualquier cosa que el programador necesite identificar o usar.
En Java, un identificador comienza con una letra, un subrayado (_) o
un símbolo de dólar ($). Los siguientes caracteres pueden ser letras o
dígitos. Se distinguen las mayúsculas de las minúsculas y no hay
longitud máxima.

Ejm: Serían identificadores válidos:


identificador nombre_usuario Nombre_Usuario _variable_del_sistema
$transaccion
y su uso sería:
int contador_principal;
char _lista_de_ficheros;
float $cantidad_en_Ptas;

37
Palabra Reservadas
Las siguientes son las palabras reservadas que están
definidas en Java y que no se pueden utilizar como
identificadores:
abstract continue for new switch
assert default goto package synchronized
boolean do if private this
break double implements protected throw
byte else import public throws
case enum instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp volatile
const float native super while

38
Comentarios en Java
En Java hay 3 tipos de comentarios. Los comentarios de documentación,
colocados inmediatamente antes de una declaración (de variable o función),
indican que ese comentario ha de ser colocado en la documentación que se
genera automáticamente cuando se utiliza la herramienta de Java, javadoc.

// Comentarios para una sola línea

/* Comentarios de una
o más líneas */

/** Comentario de documentación,


de una o más líneas
*/

39
Javadoc
Javadoc es una utilidad de Sun Microsystems para la
generación de documentaciónde APIs en formato HTML a
partir de código fuente Java.
Algunos Tags utilizados en javadoc son los siguientes:
Tag Descripción
@author Nombre del desarrollador.
Indica que el método o clase es antigua y que no se recomienda su
@deprecated
uso porque posiblemente desaparecerá en versiones posteriores.
Definición de un parámetro de un método, es requerido para
@param
todos los parámetros del método.
Informa de lo que devuelve el método, no se puede usar en
@return
constructores o métodos "void".
@see Asocia con otro método o clase.
@throws Excepción lanzada por el método
@version Versión del método o clase.

40
Configuración de Ambiente de
Programación
IDES de desarrollo:
 Eclipse
 Netbeans
 JDeveloper

41
Variables
 Una clase en Java puede contener variables y
métodos.
 Las variables pueden ser tipos primitivos como
int, char, etc.
 Los bloques de sentencias compuestas en Java se
delimitan con dos llaves.
 Las variables de Java sólo son válidas desde el
punto donde están declaradas hasta el final de la
sentencia compuesta que la engloba.

42
Ámbito de las Variables
 Variables de instancia. (Miembro o Atributo).
 Variables de método. (locales).

43
Tipos de Datos
Podemos diferenciar los datos en Java en 2 categorías
de datos principales: los tipos primitivos y los tipos
referenciados.
 Los tipos primitivos contienen un sólo valor e
incluyen los tipos como los enteros, coma flotante,
los caracteres, de tipo booleano etc.
 Los tipos referenciados se llaman así porque el valor
de una variable de referencia es una referencia (un
puntero) hacia el valor real. En Java tenemos los
arrays, las clases, las interfaces, los tipos enum como
tipos de datos referenciados.

44
Tipos de Datos Primitivos en Java

45
Tipos de Datos: Enteros

46
Tipos de Datos: Reales
Ejm:
3.14
2e12
3.1 E12

47
Tipos de Datos: booleanos
boolean
true
false

Tipos de Datos: caracteres


char
Ejm:
char sexo = ‘M’;

48
Arreglos
Un arreglo es un tipo de objeto que contiene valores
llamados elementos.

A diferencia de las variables que son accedidas por un


nombre, los elementos de un arreglo son accedidos por
números comenzando por cero. De esta manera se
puede “avanzar” a través del arreglo, accediendo a cada
elemento en turno.

49
Arreglos
Se pueden declarar en Java arrays de cualquier tipo:
 char s[ ];
 int iArray[ ];

Incluso se pueden construir arrays de arrays:


 int tabla[ ][ ] = new int[4][5];

En Java un array es realmente un objeto, porque tiene redefinido el


operador []. Tiene una función miembro: length. Se puede utilizar este
método para conocer la longitud de cualquier array.

 int a[ ][ ] = new int[10][3];


 a.length; /* 10 */
 a[0].length; /* 3 */
50
Arreglos
int [ ] arreglo1; El tamaño de arreglo se debe
ubicar al momento de crear la
instancia, caso contrario error
int arreglo2 [ ]; de compilación

arreglo1 = new int [ 4 ] ;

arreglo1 = new int [ ];

int arreglo3 [ 3 ];
51
Arreglos
Formas de instanciar y declara
un arreglo:
int arreglo1 [ ] = { 4, 3, 2};

int arreglo2 [ ] = new int [2] {4,8};

int arreglo3 [ ] = new int [ ] {4,8};

int arreglo4 [ ] ;
arreglo4 [ ] = {5,8};

int arreglo5 [ ];
arreglo5 = new int [ ] {4};
52
Tipos Enum
Los tipos de datos enumerados aparecieron desde Java
5 y lo que permiten es que una variable tenga solo un
valor dentro de un conjunto de valores predefinidos,
en otras palabras, valores dentro de una lista
enumerada. Los tipos enumerados sirven para
restringir la selección de valores a algunos previamente
definidos

Ejm:
public enum Day { SUNDAY, MONDAY, TUESDAY,
WEDNESDAY,THURSDAY, FRIDAY, SATURDAY }

53
Operadores
. [ ] ( ) ++ -- ! ~ instanceof

* / % + - << >> >>>

< > <= >= == != & ^

| && || ?: = op= ( *=

/= %= += -=) etc.
54
Operadores de Asignación
El operador = es un operador binario de asignación
de valores. El valor almacenado en la memoria y
representado por el operando situado a la derecha
del operador es copiado en la memoria indicada
por el operando de la izquierda.

55
Operadores Aritméticos

56
Operadores Relacionales

57
Operadores Condicionales

58
Operadores de Desplazamiento

59
La Clase Math
La clase Math representa la
librería matemática de Java.
Al importarla se tiene acceso
al conjunto de funciones
matemáticas estándar:

60
Control de Flujo
Las sentencias dentro del código fuente son ejecutados
generalmente de arriba hacia abajo dependiendo del
orden que aparecen. Las sentencias de control sin
embargo cambian el flujo de ejecución a través de
decisiones, bucles o ramas, permitiendo que el
programa ejecute de manera condicional particulares
bloques de código.

 if, if-else, switch


 for, while, do while
 break, continue, return

61
Sentencia if - else

62
Sentencia switch

63
Sentencia for

64
Sentencia for mejorado (enhanced
for)
La sentencia for también tiene otra forma de diseño
para iterar a nivel de colecciones y arreglos. Y
permite hacer los bucles mas compactos y fáciles de
leer:

65
Sentencia do while

66
Sentencia while

67
Conversión de Datos (Casting)
Casting significa decirle explícitamente a Java que haga
una conversión. La operación de cast puede ser de
ensanchamiento o estrechamiento.
Ejm:

int i = 5; double d = (double) i;


short s = 259; byte b = (byte) s;

Cast es requerido cuando se realiza una operación de


estrechamiento.

68
Modificadores de Acceso
Los modificadores de acceso permiten al diseñador de
una clase determinar quien accede a los datos y
métodos miembros de una clase.

Los modificadores de acceso preceden a la declaración


de un elemento de la clase (ya sea dato o método), de
la siguiente forma:

[modificadores] tipo_variable nombre;


[modificadores] tipo_devuelto nombre_Metodo
(lista_Argumentos );

69
Modificadores de Acceso
private El atributo o método de la clase no puede ser accedido
desde ninguna otra clase.

El atributo o método puede ser accedido solamente


default desde las clases del mismo paquete. La palabra default
no se escribe

El atributo o método de la clase puede ser accedido


protected desde las clases del mismo paquete o desde las clases
hijas(sin importar el paquete), a través de la herencia.

El atributo o método de la clase puede ser accedido


public
desde cualquier otra clase.

70
Uso de los Modificadores

71
Modificadores

72
Clases e InnerClases
Una Inner Class es por definición una clase que es miembro de
otra clase. Se las usa para reflejar y reforzar la relación entre 2
clases. Debería definirse una clase dentro de otra cuando la nested
class tiene sentido únicamente en el contexto de la clase que la
contiene.
class EnclosingClass {
...
classANestedClass{
...
}
}
Como otros miembros, una nested class puede ser declarada static
( o no ).
Una nested class estática es llamada static nested class. Una nested
73
class no estática es llamada innerclass.
Clases Abstractas
Una clase abstracta es una clase de la que no se
puede crear objetos.

La utilidad de estas clases estriba en que otras clases


hereden de ésta, por lo que con ello se consigue
reutilizar código.

Para declarar una clase como abstracta se utiliza la


palabra clave abstract.
74
Clases Abstractas

75
Interfaces
Una interfaz en Java es una colección de métodos sin sus
implementaciones con un nombre.
Una interface también puede declarar constantes, por
cuanto una interface es simplemente una lista de métodos
sin implementación, (métodos abstractos).
Las interfaces están asociadas a comportamiento.

76
Interfaces

 Una interface es una clase abstracta pura, es decir


todos sus métodos son abstractos
 Todos los métodos de una interface son public
abstract, aunque no esté explícito
 Una interface no puede tener métodos
77
implementados
Interfaces

 Una clase que implementa una interface está obligada


a darle cuerpo a todos los métodos de la interface.
 Si no se da cuerpo a todos los métodos, se debe
definirla como abstracta
78
Ventajas de las Interfaces
 Organizar la programación.
 Obligar a que ciertas clases utilicen los mismos
métodos (nombres y parámetros).
 Establecer relaciones entre clases que no estén
relacionadas.

79
Propiedades de las Interfaces

80
Manejo de Excepciones
Una excepción es un evento que ocurre durante la
ejecución de un programa que interrumpe el
normal flujo de la ejecución de las instrucciones del
programa.

81
Flujo de Excepciones
Envuelve un conjunto de sentencias que pueden
try arrojar una excepción.

En caso de que se arroje una excepción en el try el


catch control del programa salta al catch

Se ejecuta siempre que el código haya ingresado al


finally try, sin importar que el try haya arrojado una
excepción

82
Manejo de Excepciones
 Captura de Excepciones:
try / cacth /finally

 Lanzar Excepciones:
throw

 Propagar Excepciones:
throws
83
Creación de Objetos en Memoria
p1 = new Persona();
p2.nombre = “Pepe”;
p1.nombre = “Juan”;
Persona
Memoria de la JVM
cedula Persona
nombre p1
estatura cedula null
p2
“Juan”
nombre null
estatura 0

Persona métodos ….
CLASE
cedula null
“Pepe”
nombre null
estatura 0

métodos ….
84
Creación de Objetos en Memoria
p1= p2 ;
Memoria de la JVM
Persona
Persona cedula null
cedula p1
nombre null
“Juan”
nombre p2
estatura 0
estatura
métodos ….

Persona
CLASE
cedula null
nombre null
“Pepe”
estatura 0

métodos ….
85
Creación de Objetos en Memoria
p1= p2 ;
p1.estatura=170;
System.out.println(p2.estatura);
Persona Memoria de la JVM
Persona
cedula
nombre cedula null
p1 “Juan”
estatura nombre null
p2
estatura 0

métodos ….
CLASE
Persona

cedula null
nombre null
“Pepe”
estatura 0 170

86 métodos ….
Manejo de Excepciones
La ÚNICA razón por la que puede darse un
NullPointerException, es que tengamos en nuestra línea de
código el siguiente patrón:

NullPointerException

null loQueSea
punto

Ejm, autos es la única


autos . add(auto); variable que podría causar
null punto
87 un NullPointerException.
Manejo de Excepciones
EJERCICIO

En las siguientes líneas de código, identificar las variables que


podrían causar el NullPointerException

Empleado emp = servicio.buscar(usuario.getCedula());


empleados.add(servicio.buscar(2));

estudiantes.insertar(new Estudiante());
Estudiante es=(Estudiante) tabla.getRowData();

88
Lectura desde Teclado

89
Lectura desde Teclado
Desde java 1.5 se tiene disponible la clase Scanner que
facilita la tarea de lectura desde teclado. Basta instanciar
esta clase pasándole el System.in y a partir de ahí se tienen
muchos métodos para obtener exactamente lo que se
necesita:

90
Lectura desde Teclado
Console c= System.console();

Métodos:
int x=10;

String s1="Ingrese un numero mayor a ";

String s=c.readLine("% 2$s % 1$d", x,s1);

Modifica la posición de los parámetros


que está recibiendo

91
Applets
Un applet es un componente de una aplicación que se
ejecuta en el contexto de otro programa, Ejm un
navegador web.

El applet debe ejecutarse en un contenedor, que lo


proporciona un programa anfitrión.

Los applets de Java pueden correr en un navegador web


utilizando la Java Virtual Machine (JVM), o en el
AppletViewer de Sun.
92
Applets

93
Colecciones
Una colección es un objeto simple que agrupa múltiples
elementos en un sola unidad. Las colecciones son usadas
para almacenar, manipular y comunicar datos agregados.

94
Collections Interfaces

95
Collections Interfaces e
Implementaciones
I
Collection

I I I
Set List Map

C I C C C I C
HashSet SortedSet ArrayList Vector HashMap SortedMap HashTable
S S

C I C I
LinkedHashSet NavigableSet LinkedHashMap NavigableMap

C C
TreeSet TreeMap

96
Collection Interface

97
Map Interface

98
Collections Implementaciones

99
Collections Método Sort
Collections.sort(unaLista);

Ordena la lista especificada en orden ascendente,


según el orden natural de sus elementos.

List<String> lista= new ArrayList<String>();


lista.add("a");
lista.add("b");
lista.add("z");
lista.add("y");
lista.add("p");

Collections.sort(lista);
System.out.println(lista);

100 Resultado [a, b, p, y, z]


Collections Método BinarySearch
Collections.binarySearch(unalista,unElementoDeLaLista);

Busca el elemento especificado para la lista dada


y retornando la posición en la que se encuentra.

Previamente la lista debe estar ordenada.

int res= Collections.binarySearch(lista, "c");

res -3 A res se le suma uno y al resultado se lo convierte


en numero positivo, el numero positivo es la posición.
posición =-3+1
posición =-2*(-1) Si el elemento buscado no se encuentra en la lista,
posición =2 la posición que retorna es en la que debería estar.
101
ArrayList
ArrayList<String> list= new ArrayList<String>();

list.add("uno"); Agrega el elemento al final de la lista.

list.clear(); Elimina todos los elementos de esta lista. La


lista estará vacía después de esta llamada.

list.remove(1) Quita el elemento en la posición especificada


en esta lista.

list.size() Devuelve el número de elementos de la lista.

Devuelve el elemento en la posición


list.get(0) especificada en esta lista.
102
Vector
Vector<String> vect= new Vector<String>();
Agrega el elemento al final del vector.
vect.add("dos"); Pertenece a List

Agrega el elemento al final del vector.


vect.addElement("tres") Pertenece a Vector

Devuelve el elemento situado en el


vect.elementAt(1) índice especificado. Pertenece a
Vector.

Devuelve el elemento en la posición


vect.get(1) especificada en esta lista. Pertenece
103 a List.
ANEXOS

104
Printf
public static void main(String[] args) {
int res = 10;
System.out.printf("el resultado es %d", res);
}

Se muestra en consola: el resultado es 10

d dígitos
f Flotante ó Double
% s String
c character
b boolean
105
Printf
public static void main(String[] args) {
int a=12;

System.out.printf("a:% 5 d",a);
}

Se muestra en consola: a: 12
mínimo

En este caso se completan con Indica el número de dígitos que


espacios en blanco. mostrará del entero.

106
Printf
public static void main(String[] args) {
float f=125f;
System.out.printf("f: % 2.2 f", f);
}

Número de
Se muestra en consola: f:125,00
cifras
entero
Número de
cifras parte
Si las cifras sobrepasan lo decimal
indicado, no existe error; se
muestra el valor completo

107
Printf

public static void main(String[] args) {


String s="vivi";
System.out.printf("s: %s", s);
}

Usarlo para String.

108
Printf

public static void main(String[] args) {


char c='c';

System.out.printf("c: %c",c);
}

Usarlo para char

109
Clase Date
La clase Date se utiliza para representar una fecha y una
hora.

Se pueden manipular el día, mes, año, día de la semana,


horas minutos y segundos.

110
Constructores de Date

111
Métodos de Date

112
Formateo de Fechas
 The DateFormat Class

La clase astracta DateFormat y su


subclase concreta:
SimpleDateFormat provee la
habilidad de formatear y paresear
fechas y horas.

El constructor normalmente toma


un string de formateo hecho de los
siguientes símbolos:

113
Ejemplo de Formateo

114
Clase BigDecimal
La clase java.math.BigDecimal es una clase de Java para representar
números con coma flotante, de manera precisa.

La clase BigDecimal tiene métodos para operar al mismo (sumar,


restar, multiplicar, dividir).

Para números con punto flotante (es decir, con parte decimal) la
forma recomendada de construir un objeto BigDecimal es a través de
un String.

BigDecimal a = new BigDecimal("10.20");


La construcción utilizando un double no es precisa, por la
imprecisión intrínseca del Double.

115

Das könnte Ihnen auch gefallen