Show Menu
Cheatography

Java - 2.0 Cheat Sheet (DRAFT) by

This is a draft cheat sheet. It is a work in progress and is not finished yet.

P. O. O. en Java : modelo de clase

Variables miembro | atributos :
Guardan valores del objeto, repres­entan una propiedad determ­inada suya.
 
Pueden ser tipos primitivos o otros objetos (agreg­ación).
Métodos | Rutinas :
Componente de un objeto que lleva a cabo una determ­inada acción o tarea con los atributos.
 
En principio, todas las variables y rutinas de un programa de Java deben pertenecer a una clase.
-
Clases:
Una clase representa al conjunto de objetos que comparten una estructura y un compor­tam­iento comunes.
 
Una clase es una combin­ación específica de atributos y métodos y puede consid­erarse un tipo de dato de cualquier tipo no primitivo.
 
Una clase también puede estar compuesta por métodos estáticos que no necesitan de objetos (como main).
 
[modif­ica­dores] class Identi­fic­ado­rClase { //Decl­ara­ciones de atributos y metodos}
Constr­uctor
llamar a constr­uctor principal para coger ya definidas
public Keywor­dTe­st(­String name, int age) { this();
call the parame­terized constr­uctor from the no argument constr­uctor and pass some arguments:
public Keywor­dTest() { this("J­ohn­", 27); }
a reference to the current instance.
printI­nst­anc­e(t­his);
access the outer class instance from within the inner class:
public class Keywor­dTest { private String name; class ThisIn­ner­Class { boolean isInne­rClass = true; public ThisIn­ner­Class() { Keywor­dTest thisKe­yword = Keywor­dTe­st.t­his; String outerS­tring = Keywor­dTe­st.t­hi­s.name; } } }
acceder a constr­uctor de la superclase
super()
Atributos de instancia
Diferentes para cada objeto
Atributos de clase
public static int cantid­adD­eOjos = 2;
Variable local
variable en scope de método

Scope

El segmento del programa donde la variable es válida y puede usarse.
de clase
Las variables private dentro de la clase pero fuera del método tienen Scope de clase : pueden usarse dentro de la misma clase epro no fuera
de método (variable local)
Variable declarada dentro de un método que sólo peude usarse dentro de ese método.

Acceso a miembros de una clase

Nivel general
public o sin modificar explícito
Nivel de miembros
public, private, protected o sin modificar explícito

Modifi­cadores de visibi­lidad

public
acceso desde cualquier clase
protected
acceso desde la misma clase o clases heredadas, acceso desde su mismo paquete (packa­ge-­pri­vate)
private
acceso desde la misma clase que los define

Modifi­cadores

static
 
static means that the method belongs to the MyClass class and not an object of the MyClass class.
 
Se crea una sóla copia o instancia del miembro, no importa cuántas instancias de clase se creen.
 
Se pueden llamar sin instancia.
 
Es posible acceder a ellos sin crear instancias de clase.
 
Usar cuando el valor es común para todos los objetos.
 
USAR CUANDO SU VALOR ES INDEPE­NDIENTE DEL OBJETO.
 
Cuando tiene sentido usar el mimebro aunque el objeto aún no se haya construído
 
Cuando el mimebro no va a cambiar entre instancias de Clase u Objeto
static (en variables)
Delimita un valor para la variable de clase que compar­tirán todas las instancias de ese objeto
 
Declar­ándoles un valor como variable de clase, hacemos que esa variable sea común para todas las instancias del objeto.
static (métodos)
Sólo pueden acceder a atributos estáticos o llamara otros métodos estáticos
 
Usan propie­dades del objeto sin crearlo.
 
To access­/ma­nip­ulate static variables and other static methods that don’t depend upon objects
 
tatic methods in Java are resolved at compile time. Since method overriding is part of Runtime Polymo­rphism, so static methods can’t be overridden
static Blocks
public static List<S­tri­ng> ranks = new Linked­Lis­t<>(); static { ranks.a­dd­("Li­eut­ena­nt"); ranks.a­dd­("Ca­pta­in"); ranks.a­dd­("Ma­jor­"); }
clases estáticas anidadas
public class Singleton { private Single­ton() {} private static class Single­ton­Holder { public static final Singleton instance = new Single­ton(); }
 
final
Define valor permanente a variable.
Acceso
public
The code is accessible for all classes
private
The code is only accessible within the declared class
default
The code is only accessible in the same package.
protected
The code is accessible in the same package and subcla­sses.
No acceso (clase)
final
The class cannot be inherited by other classes
abstract
The class cannot be used to create objects (To access an abstract class, it must be inherited from another class.
No acceso (atributos y métodos)
final
Attributes and methods cannot be overri­dde­n/m­odified
static
Attributes and methods belongs to the class, rather than an object
abstract
Can only be used in an abstract class, and can only be used on methods. The method does not have a body, for example abstract void run();. The body is provided by the subclass (inherited from).
transient
Attributes and methods are skipped when serial­izing the object containing them
synchr­onized
Methods can only be accessed by one thread at a time
volatile
The value of an attribute is not cached thread­-lo­cally, and is always read from the "main memory­"
? - Si no pongo static y modifico una variable de una instancia con this, cambia de valor en la instancia?

Dudas

? - Sumar hasta llegar a un número
-
int num = 10;
int sumas = 0;
int suma = 0;
while(suma < num){
 ­ ­ ­ suma += sumas;
 ­ ­ ­ ­Sys­tem.ou­t.p­rin­tln­("sumas "­+su­mas­+" suma:"+­suma);
 ­ ­ ­  sumas++;
}
? -Conseguir método privado desde main
- Hacer un método que devuelva el método privado (si es un boolean, p. e.)
?Simpl­ificar if var x == x, x == y etc
?Clases abstractas en Java
?Suclases y sueprc­lases en java
?Ficheros aleatorios
?Inter­faces
?métodos sobrec­argados

Bucles

 
for ( int n : numeros){}
 
The break statement can also be used to jump out of a loop.
 
The continue statement breaks one iteration (in the loop), if a specified condition occurs, and continues with the next iteration in the loop.

Clase Scanner

Leer char
char x1 = sc.nex­t().ch­arA­t(0);

Abstra­cción

Clase sobre la que no se peuden ahcer objetos
debe tener mínimo un método abstracto que todas sus subclases van a heredar obliga­tor­iamente
puede tener otros métodos normales, los cuales se puden hacer override o llamar desde subclase o superclase para el método origin­al(el override -> especi­ali­zación)
pueden tener constr­uctor y sus subclases pueden usarlo
a diferencia de als interf­aces, no hay por qué heredar todos los métodos
ABSTRACTA
SUBCLASE
abstract A();
@Override A(){"a"}
public B(){"pa­dre­"}
@Override C(){"hi­ja"}
public C(){"pa­dre­"}
-
SUBCLA­SE.A();
"­a"
SUBCLA­SE.B();
"­pad­re"
SUBCLA­SE.C();
"­hij­a"
| SUBCLASE

@Override

Interfaces

 

Métodos de String

str.su­bst­rin­g(i­nde­xSt­art[, indexEnd])
consol­e.l­og(­str.su­bst­ring(1, 3)); // expected output: "­oz"
 
consol­e.l­og(­str.su­bst­rin­g(2)); // expected output: "­zil­la"
char charAt (int indice): devuelve el carácter que se encuentra en la posición de índice.
int compareTo (String cadena)
If first string is lexico­gra­phi­cally greater than second string, it returns positive number (diffe­rence of character value). If first string is less than second string lexico­gra­phi­cally, it returns negative number and if first string is lexico­gra­phi­cally equal to second string, it returns 0
int compar­eTo­Ign­oreCase (String cadena): compara dos cadenas (igual que el anterior) pero no diferencia entre mayúsculas y minúsc­ulas.
- Boolean equals (Object objeto): devuelve True si el objeto que se pasa por parámetro y el string son iguales. Si no, devuelve False.
int indexOf (int carácter): devuelve la posición de la primera vez que aparece el carácter en la cadena de caract­eres. Como el carácter es de tipo entero, se debe introducir el valor del carácter corres­pon­diente en código ASCII.
boolean isEmpty (): si la cadena es vacía, devuelve True, es decir, si su longitud es cero.
- int length (): devuelve el número de caracteres de la cadena.
String replace (char caract­erA­ntiguo, char caract­erN­uevo): devuelve una cadena que reemplaza el valor de caráct­erA­ntigüo por el valor del caráct­erN­uevo.
The java string replace() method returns a string replacing all the old char or CharSe­quence to new char or CharSe­quence.
String [] Split (String expres­ión): devuelve un array de String con los elementos de la cadena expresión.
String toLowe­rCase (): devuelve un array en el que aparecen los caracteres de la cadena que hace la llamada al método en minúsc­ulas.
String toUppe­rCase (): devuelve un array en el que aparecen los caracteres de la cadena que hace la llamada al método en mayúsculas
- String trim (): devuelve una copia de la cadena, pero sin los espacios en blanco.
String valueOf (tipo variable): devuelve la cadena de caracteres que resulta al convertir la variable del tipo que se pasa por parámetro
Returns the string repres­ent­ation of the x argument.

Estruc­turas de lista

Arrays
-Permiten guardar valores del mismo tipo
-Tamaño fijo
Arrays (crear)
int numeros[] = new int[10];
inicia­lizar
myNum = {10, 20, 30, 40};
Arrays (crear e inicia­lizar)
int n[] = new int[]{­1,2­,3,­4,5­,6,­7,8­,9,10};
acceder
System.ou­t.p­rin­tln­(ca­rs[0]);
 
cars[0] = "­Ope­l";
Arrays multid­ime­nsi­onales (crear)
int[][] temper­aturas = new int[7][2];
crear e inicia­lizar
int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
Arrays multid­ime­nsi­onales (acceder)
for (int i = 0; i < myNumb­ers.le­ngth; ++i) { for(int j = 0; j < myNumb­ers­[i].le­ngth; ++j) {
 
int x = myNumb­ers­[1][2];
ArrayList
-Permiten crear listas de objetos.
-Tamaño dinámico
ArrayList (crear)
ArrayL­ist­<St­rin­g> cars = new ArrayL­ist­<St­rin­g>();
ArrayList de más de un tipo (crear)
ArrayList a = new ArrayL­ist­<>(); a.add(­"­a"); a.add(­true); a.add(1);
ArrayList - métodos
al.size(); int
Añade al final
add(E e); true
Añade en pos
add(int index, Object element); true
Sustituye el elemento en la pos con el nuevo
cars.s­et(0, "­Ope­l"); el elemento anterior
Devolver el elemento en la pos especi­ficada
.get(int index);
Borra el elmento en la pos especi­ficada
remove(int index); el elemento borrado
Borra el elemento si coincide
remove­(Object o); bool
 
clear()
 
Collec­tio­ns.s­or­t(c­ars);
 
isEmpty(); bool
 
contai­ns(­Object elem); bool
 
indexO­f(O­bject elem); int
 
lastIn­dex­Of(­Object elem); int
 
clone(); arrList
 
toArray(); arr
 
No se puede añadir en pos donde esa pos no existe aka arrl está vacío
HashMap
Create a HashMap object called capita­lCities that will store String keys and String values:
HashMa­p<S­tring, String> capita­lCities = new HashMa­p<S­tring, String­>();
añadir key y valor
// Add keys and values (Country, City) capita­lCi­tie­s.p­ut(­"­Eng­lan­d", "­Lon­don­");
acceder emdiante key
capita­lCi­tie­s.g­et(­"­Eng­lan­d");
borrar mediante key
capita­lCi­tie­s.r­emo­ve(­"­Eng­lan­d");
 
capita­lCi­tie­s.c­lear();
 
capita­lCi­tie­s.s­ize();
loop keys
// Print keys for (String i : capita­lCi­tie­s.k­eyS­et()) { System.ou­t.p­rin­tln(i); }
loop values
for (String i : capita­lCi­tie­s.v­alu­es()) { System.ou­t.p­rin­tln(i); }
IlXi

Ficheros

Ler dende ficheiro
FileIn­put­Stream fis = new FileIn­put­Str­eam­(fi­che­iro);
 
Object­Inp­utS­tream ois = new Object­Inp­utS­tre­am(­fis);
Leer objeto de un fichero
Humidade objL = (Humid­ade­)oi­s.r­ead­Obj­ect();
Leer objetos de un fichero

Excepc­iones

 
} catch (Exception e) {
 
The finally statement lets you execute code, after try...c­atch, regardless of the result
custom error
f (age < 18) { throw new Arithm­eti­cEx­cep­tio­n("A­ccess denied - You must be at least 18 years old.");

Packages

Crear
package mypack; class MyPack­age­Class {javac MyPack­age­Cla­ss.java

Herencia

Heredar
class Vehicle {
 
protected String brand = "­For­d";
 
public void honk() {
 
System.ou­t.p­rin­tln­("Tuut, tuut!");
 
}
 
}
-
 
class Car extends Vehicle {
 
private String modelName = "­Mus­tan­g"; // Car attribute
 
// Car attribute public static void main(S­tring[] args) {
 
// Create a myCar object Car myCar = new Car();
 
// Call the honk() method (from the Vehicle class) on the myCar object myCar.h­onk();
 
// Display the value of the brand attribute (from the Vehicle class) and the value of the modelName from the Car class System.ou­t.p­rin­tln­(my­Car.brand + " " + myCar.m­od­elN­ame);
 
}
 
}
 
Subclase hereda atributos y miembros
-
Brand is protected so subclass can use it.
 
La subclase puede usar lo heredado o hacer override (a menos que sea final), y puede crear nuevos métodos
 
Sólo se puede heredar de una clase

Polifo­rmismo

Estruc­turas de control

switch(a){ case 1: break; default: }

Declarar un String

//Decl­aración de un array que pasaremos a String char [] array = new char[]­{'l­','­i',­'t'­,'e­','­r',­'a'­,'l'}; //Formas de declarar un String String forma1 = new String ("li­ter­al_­cad­ena­_ca­rac­ter­es"); String forma2 = "­lit­era­l_c­ade­na_­car­act­ere­s"; String forma3 = new String (array); String forma4 = new String (forma2);

Colecc­ion­es/­Col­lec­tions

A Collection is a group of individual objects repres­ented as a single unit. Java provides Collection Framework which defines several classes and interfaces to represent a group of objects as a single unit.
The Collection interface (java.u­ti­l.C­oll­ection) and Map interface (java.u­ti­l.Map) are the two main “root” interfaces of Java collection classes.
Need for Collection Framework :
Before Collection Framework (or before JDK 1.2) was introd­uced, the standard methods for grouping Java objects (or collec­tions) were Arrays or Vectors or Hashta­bles. All of these collec­tions had no common interface.
Set (Conjunto)
an unordered collection of objects in which duplicate values cannot be stored.
 
Set is implem­ented by HashSet, Linked­HashSet or TreeSet
 
List
an ordered collection of objects in which duplicate values can be stored. Since List preserves the insertion order, it allows positional access and insertion of elements.
 
List Interface is implem­ented by ArrayList, Linked­List, Vector and Stack classes.
 
Stack (PIla)
Java Collection framework provides a Stack class which models and implements Stack data structure. The class is based on the basic principle of last-i­n-f­irs­t-out. In addition to the basic push and pop operat­ions, the class provides three more functions of empty, search and peek. The class can also be said to extend Vector
 
 
- Introducir un nuevo elemento sobre la cima (push).
 
Eliminar un elemento de la cima (pop).
Queue (Cola)
The Queue interface is available in java.util package and extends the Collection interface. The queue collection is used to hold the elements about to be processed and provides various operations like the insertion, removal etc. It is an ordered list of objects with its use limited to insert elements at the end of the list and deleting elements from the start of list i.e. it follows the FIFO or the First-­In-­Fir­st-Out principle.
 
 
Encolar (enqueue): para ir añadiendo elementos
 
Desencolar (dequeue): para eliminar elementos.
-
Iterators
Este iterador nos propor­cionará unos métodos propios de este, que facili­tarán recorrer este objeto collec­tion, a contin­uación, vemos los métodos más utiliz­ados: - next (): devuelve el siguiente elemento en la iteración. - hasNext (): devuelve verdadero si la iteración tiene más elementos, en caso contrario devuelve falso. - remove(): elimina de la colección subyacente el último elemento devuelto por este iterador.
Iterator <St­rin­g> iterador = nombre.it­era­tor(); while (itera­dor.ha­sNe­xt()) { String nombre = iterad­or.n­ext(); //código bucle while } //Con las listas podemos utilizar un bucle for mejorado for (Strin­g.n­ombre : nombres) { //código bucle for each }
--
Not a collection -
Map
The java.u­til.Map interface represents a mapping between a key and a value. The Map interface is not a subtype of the Collection interface. Therefore it behaves a bit different from the rest of the collection types
 
A Map cannot contain duplicate keys and each key can map to at most one value. Some implem­ent­ations allow null key and null value like the HashMap and Linked­Has­hMap, but some do not like the TreeMap.
 
There are two interfaces for implem­enting Map in java: Map and SortedMap, and three classes: HashMap, TreeMap and Linked­Has­hMap.
 
 
Maps are perfect to use for key-value associ­ation mapping such as dictio­naries. The maps are used to perform lookups by keys or when someone wants to retrieve and update elements by keys.
---LIST INTERFACES
ArrayList
//Inst­ancia de tipo Genérico (Cuando no sabemos qué tipo de datos vamos a introducir en la colecc­ión):
ArrayList nombre = new ArrayList ();
//Inst­ancia de colección con tipo especí­fico:
ArrayList <Ti­po_­de_­dat­o> nombre = new ArrayList <Ti­po_­de_­dat­o> ();
get (int):
obtiene el objeto que se encuentra en la posición pasada por parámetro.
indexOf (Object):
isEmpty ()
set (int, Objeto)
sobres­cribe el elemento que se encuentra en la posición int por un objeto que se indica por parámetro
toArray(): devuelve una lista de objetos y, en cada casilla de esta lista, inserta un objeto de ArrayList.
toString()
.add
.remove
LinkedList
//Inst­ancia de tipo Genérico (Cuando no sabemos qué tipo de datos vamos a introducir en la colecc­ión): LinkedList nombre = new LinkedList (); //Inst­ancia de colección con tipo especí­fico: LinkedList <Ti­po_­de_­dat­o> nombre = new LinkedList <Ti­po_­de_­dat­o> ();
remove­Fir­st(): elimina el primer elemento de la lista enlazada. - addFir­st(): añade un elemento al principio de la lista. - addLast(): añade un elemento al final de la lista. - getFir­st(): devuelve el primer elemento de la lista. - getLast(): devuelve el último elemento de la lista
Vector
Dispone de un array de objetos que puede aumentar o disminuir de forma dinámica según las operac­iones que se vayan a llevar a cabo
//Inst­ancia de tipo Genérico (Cuando no sabemos qué tipo de datos vamos a introducir en la colecc­ión): Vector nombre = new Vector (); //Inst­ancia de colección con tipo especí­fico: Vector <Ti­po_­de_­dat­o> nombre = new Vector <Ti­po_­de_­dat­o> (); Algunos de sus métodos más import­antes son: - firstE­lement (): devuelve el primer elemento del vector. - lastEl­emento (): devuelve el último elemento del vector. - capacity (): devuelve la capacidad del vector. - setSize (int): elige un nuevo tamaño para el vector. En el caso de que sea más grande que el que tenía en un principio, inicializa a null los nuevos valores. En el caso de que sea menor que el inicial, elimina los elementos restantes.
---SET INTERFACES
HashSet
Es rápida en cuanto a operac­iones básicas (inser­ción, borrado y búsqueda), no admite duplic­ados, la iteración a través de sus elementos es más costosa, ya que, necesitará recorrer todas las entradas de la tabla y la ordenación puede diferir del orden en el que se han insertado los elementos.
//Inst­ancia de tipo Genérico (Cuando no sabemos qué tipo de datos vamos a introducir en la colecc­ión): HashSet nombre = new HashSet (); //Inst­ancia de colección con tipo especí­fico: HashSet <Ti­po_­de_­dat­o> nombre = new HashSet <Ti­po_­de_­dat­o> ();
- isEmpty(): devuelve si el conjunto está vacío o contiene valores con un valor booleano. - clone(): devuelve una copia superf­icial de esta instancia de HashSet: los elementos en sí no están clonados. - clear(): borra todos los elementos del conjunto.
Recorrer
for(Double s : colSet­Int){ System.ou­t.p­rin­tln(s); }
TreeSet
el coste para realizar las operac­iones básicas será logarí­tmico con el número de elementos que tenga el conjunto.
 
CÓDIGO: //Inst­ancia de tipo Genérico (Cuando no sabemos qué tipo de datos vamos a introducir en la colecc­ión): TreeSet nombre = new TreeSet (); //Inst­ancia de colección con tipo especí­fico: TreeSet <Ti­po_­de_­dat­o> nombre = new TreeSet <Ti­po_­de_­dat­o> (); Algunos de sus métodos más import­antes son: - first(): devuelve el primer elemento actual (el más bajo) en este conjunto. - last(): devuelve el último elemento actual (el más alto) en este conjunto. - floor(): devuelve el elemento más grande en este conjunto, menor o igual que el elemento dado, o nulo si no hay dicho elemento. - tailSet(): devuelve una vista de la parte de este conjunto, cuyos elementos son mayores que o iguales al elemento pasado por parámetro.
---QUEUE INTERFACES
ArrayDeque
- push(): añade un elemento al principio de la cola. - pop(): elimina el elemento de la cola que se ha insertado primero. - pollFi­rst(): elimina el primer elemento de la cola. - pollLa­st(): elimina el ultimo elemento de la cola.FMAP
---MAP
Un map es un conjunto de valores, con el detalle de que cada uno de estos valores tiene un objeto extra asociado
A los primeros se les llama claves o keys, porque nos permiten acceder a los segundos. Los valores clave no aceptan valores duplic­ados.
get (Object): obtiene el valor corres­pon­diente a una clave. Devuelve null si la clave no existe en el map. put (clave, valor): añade un par clave-­valor al map. Si ya había un valor para esa clave lo remplaza. keySet(): devuelve todas las claves (devuelve un Set, es decir, sin duplic­ados). values(): todos los valores (en este caso sí pueden estar duplic­ado­s).e­nt­ryS­et(): todos los pares clave-­valor (devuelve un conjunto de objetos Map.Entry, cada uno de los cuales devuelve la clave y el valor con los métodos getKey() y getValue() respec­tiv­amente)
add key and value
colore­sPr­efe­rid­os.p­ut­(IL­ERNA, Color.A­ZUL);
change key value
colore­sPr­efe­rid­os.p­ut­(IL­ERNA, Color.A­ZUL);
get
Color colorP­ref­erido = colore­sPr­efe­rid­os.g­et­(IL­ERNA);
remove
Colore­sPr­efe­rid­os.r­em­ove­(IL­ERNA);
HashMap
Es rápida en cuanto a operac­iones básicas (inser­ción, borrado y búsqueda), no admite duplic­ados, la iteración a través de sus elementos es más costosa, ya que necesitará recorrer todas las entradas de la tabla y la ordenación puede diferir del orden en el que se han insertado los elementos
//Inst­ancia de tipo Genérico (Cuando no sabemos qué tipo de datos vamos a introducir en la colecc­ión): HashMap nombre = new HashMap (); //Inst­ancia de colección con tipo especí­fico: HashMap <Ti­po_­de_­dat­o_c­lave, Tipo_d­e_d­ato­_va­lor> nombre; nombre = new HashMap < Tipo_d­e_d­ato­_clave, Tipo_d­e_d­ato­_valor > ();

Generic Methods and Classes

es posible que queramos crear alguna clase o método genético de forma que no sepamos previa­mente el tipo de dato con el que vamos a trabajar. A esto es a lo que llamamos clase y métodos genéricos
Crear clases genéricas
modifi­cad­or_­de_­acceso class nombre­_clase <T> { T variable; }
Donde “T” representa un tipo de referencia válido en el lenguaje Java: String, Integer, Alumno, Libro, Coche o cualquier otro tipo
Los parámetros de clases por tipos no se limitan a un único parámetro (T). Por ejemplo, la clase HashMap que indicamos a contin­uación, permite dos paráme­tros: CÓDIGO: class Hash <A, B> { } En este caso, tenemos dos parámetros A y B que hacen referencia al tipo de clave y el valor
También podemos aplicar esta sintaxis en interf­aces: CÓDIGO: public interface nombre­_in­ter­fac­e<K­,V>{ public K getKey(); public V getVal­ue(); }
Y esta interface podría ser implem­entada por una clase: CÓDIGO: public class n_clas­e<K­,V> implements n_inte­rfa­ce<­K,V­>{ private K key; private V value; public n_clase(K key, V value){ this.key = key; this.value = value; } public K getKey­(){­return key;} public K getVal­ue(­){r­eturn value;} } Donde K representa la clave y V representa el valor.
Podemos crear métodos para que puedan utilizar los tipos parame­tri­zados, bien sea en las clases genéricas o en las normales. La sintaxis para crear un tipo genérico es: CÓDIGO: public static <T> T metodo­gen­erico (T parame­tro­Formal) { //código método } Y, para invocar este método: CÓDIGO: claseD­elM­eto­doG­ene­ric­o.<­Tip­oCo­ncr­eto> método (Param­etr­oReal); Aunque, en algunos casos, puede que el compilador deduzca qué tipo de parámetro se va a utilizar y, en este caso, se puede obviar. CÓDIGO: Clased­elM­eto­doG­ene­ric­o.m­etodo (param­etr­oReal);

java.u­til.regex

< $, ^, ., *, +, ?, [, ], . >
util.r­ege­x.P­attern
Used for defining patterns
compile the given regular expression into a pattern
compil­e(S­tring regex)
 
Pattern patron = Patter­n.c­omp­ile­("ca­mio­n");
util.r­ege­x.M­atcher
Used for performing match operations on text using patterns
 
Matcher encaja = patron.ma­tcher()
matche­r(C­har­Seq­uence input)
It is used to create a matcher that will match the given input against this pattern.
???