Manual Esencial de Programación Java: Sintaxis, Estructuras y Colecciones
Tipos de Datos y Conversiones en Java
Rango de valores numéricos enteros: -128 a 127
Jerarquía de tipos de datos primitivos:
byte -> short -> int -> long -> float -> double
- Izquierda a Derecha: Conversión implícita (ampliación).
- Derecha a Izquierda: Conversión explícita (casting).
Operador ternario condicional:variable = (condición) ? valor_si_verdadero : valor_si_falso;
Estructuras de Control y Bucles
Implementación de un menú interactivo con la estructura do-while y switch:
int op;
do {
// Menú
op = teclado.nextInt();
switch(op) {
case 1: /* código */
break;
case 2: /* código */
break;
case 3: System.out.println("Adiós");
break;
default: System.out.println("Opción no válida");
}
} while (op != 3);Métodos para manipulación de cadenas de texto:cadena.toLowerCase()cadena.toUpperCase()
Programación Orientada a Objetos y Clases
Creación de instancias, modificación de atributos y visualización de información:
// Crear objeto
Videojuego juego1 = new Videojuego("Mario Kart 8", "Nintendo", "Carreras", 50.0, 10);
// Modificar número de copias
juego1.setNumCopias(7);
// Mostrar información
System.out.printf("Videojuego: %s", juego1.toString());Validación de expresiones regulares:matricula.matches(EXPREG_MAT);
Constructores y Gestión de Excepciones
Ejemplo de validación de parámetros y lanzamiento de excepciones:
public Vehiculo(String mod, double pre) throws IllegalArgumentException {
if (mod == null) throw new NullPointerException("Texto...");
if (mod.equals("")) throw new IllegalArgumentException("Texto...");
if (pre <= 0) throw new IllegalArgumentException("Texto...");
if (pot < Vehiculo.POTENCIA_MINIMA) throw new IllegalArgumentException("...");
this.modelo = mod; this.precio = pre; Vehiculo.totalVehiculos++;
}Sobrecarga de constructores:
public Vehiculo (String modelo, String color, double precio) throws NullPointerException, IllegalArgumentException {
this(modelo, color, precio, Vehiculo.POTENCIA_MINIMA, 4);
}Sobrescritura del método toString():
@Override
public String toString(){
return String.format("[modelo=%s, color=%s, precio=%.2f, potencia=%d, numPlazas=%d]", this.getModelo(), this.getColor(), this.getPrecio(), this.getPotencia(), this.getNumPlazas());
}Matrices y Operaciones con Arrays
Cálculo de la diagonal en una matriz:
for (int i = 0; i < matriz.length; i++) {
sumaDiagonal += matriz[i][matriz.length - 1 - i] || matriz[i][i];
}Recorrido de matrices bidimensionales para conteo de números impares:
for (int i = 0; i < numeros.length; i++) {
for (int j = 0; j < numeros[i].length; j++) {
if (numeros[i][j] % 2 != 0) {
contadorImpares++;
}
}
}Colecciones y Estructuras de Datos
HashSet<String>: No garantiza orden y elimina duplicados.TreeSet<String>: Orden natural de los elementos.ArrayList<String>: Guarda todos los elementos secuencialmente.- Método
.add: Permite guardar datos.
Ejemplo de uso con bucle for-each:
for (String entrada : jugadoresArray) {
conjuntoJugadores.add(entrada);
}Entrada y Salida (I/O) de Archivos
Clases principales para manejo de archivos:
java.io.BufferedWriterjava.io.FileWriterjava.io.FileNotFoundExceptionjava.io.IOException
Inicialización de escritura en ficheros:
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(rutaFichero));
} catch (IOException e) {
e.printStackTrace();
}Iteradores y Operaciones Avanzadas en Colecciones
Uso de Iterator para filtrado condicional:
Iterator<String> it = conjuntoJugadores.iterator();
while (it.hasNext()) {
String entrada = it.next();
if (entrada.startsWith("Barcelona"))
it.remove();
}Uso de ListIterator para modificación de elementos:
ListIterator<String> it = listaJugadores.listIterator();
while (it.hasNext()) {
String entrada = it.next();
it.set(entrada.toUpperCase());
}Combinación de conjuntos:
Set<Integer> conjuntoResultado = new TreeSet<>(conjuntoNumeros1);