Metodi Java predefiniti
I metodi Java predefiniti sono metodi già scritti e inclusi in Java API, possono essere richiamati direttamente perché definiti a priori.
Metodi Fondamentali (dalla classe Object)
Questi metodi sono disponibili su qualsiasi oggetto in Java, poiché tutti gli oggetti ereditano (direttamente o indirettamente) dalla classe Object.
-
equals(Object obj): Controlla se due oggetti sono “uguali” (la definizione di “uguale” dipende da come il metodo è implementato nella classe). -
toString(): Restituisce una rappresentazione in formato stringa dell’oggetto. È utilissimo per il debug (es. quando stampi un oggetto in console). -
hashCode(): Restituisce un numero intero (hash) che rappresenta l’oggetto. È fondamentale per il funzionamento diHashMapeHashSet. -
getClass(): Restituisce la classe dell’oggetto a runtime.
📄 Metodi della classe String
Probabilmente la classe più usata in assoluto. Le stringhe sono immutabili, quindi questi metodi restituiscono sempre una nuova stringa senza modificare l’originale.
-
length(): Restituisce il numero di caratteri nella stringa. -
charAt(int index): Restituisce il carattere (tipochar) all’indice specificato. -
substring(int beginIndex, int endIndex): Estrae una nuova stringa da quella originale, partendo dall’indicebeginIndex(incluso) fino aendIndex(escluso). -
equals(Object anotherObject): Confronta questa stringa con un altro oggetto (case-sensitive). -
equalsIgnoreCase(String anotherString): Confronta due stringhe ignorando le differenze tra maiuscole e minuscole. -
indexOf(String str): Trova l’indice della prima occorrenza di una sotto-stringa. -
toLowerCase()/toUpperCase(): Converte l’intera stringa in minuscolo o maiuscolo. -
trim(): Rimuove gli spazi bianchi all’inizio e alla fine della stringa. -
split(String regex): Divide la stringa in un array di stringhe (String[]) basandosi su un delimitatore (spesso uno spazio" ", una virgola","o un’espressione regolare). -
replace(CharSequence target, CharSequence replacement): Sostituisce tutte le occorrenze di una sotto-stringa con un’altra. -
isEmpty(): Restituiscetruese la stringa ha lunghezza 0. -
isBlank()(da Java 11): Restituiscetruese la stringa è vuota o contiene solo spazi bianchi. -
String.format(String format, Object... args): (Come discusso prima!) Crea una stringa formattata. -
String.valueOf(Object obj): Metodo statico che converte qualsiasi tipo (primitivo o oggetto) in una stringa.
🗃️ Metodi delle Collezioni (Interfacce List, Map, Set)
Questi sono i cavalli di battaglia per gestire gruppi di dati.
List (es. ArrayList)
-
add(E element): Aggiunge un elemento alla fine della lista. -
get(int index): Recupera l’elemento all’indice specificato. -
set(int index, E element): Sostituisce l’elemento all’indice specificato. -
remove(int index)/remove(Object o): Rimuove un elemento (per indice o per oggetto). -
size(): Restituisce il numero di elementi nella lista. -
isEmpty(): Controlla se la lista è vuota. -
contains(Object o): Controlla se la lista contiene un determinato elemento.
Map (es. HashMap)
-
put(K key, V value): Associa un valore a una chiave (se la chiave esiste, aggiorna il valore). -
get(Object key): Recupera il valore associato a una chiave (restituiscenullse la chiave non esiste). -
remove(Object key): Rimuove la coppia chiave-valore associata alla chiave. -
containsKey(Object key): Controlla se la mappa contiene la chiave specificata. -
size(): Restituisce il numero di coppie chiave-valore. -
keySet(): Restituisce unSetcontenente tutte le chiavi. -
values(): Restituisce unaCollectioncontenente tutti i valori. -
entrySet(): Restituisce unSetdi coppie (Map.Entry) (usatissimo per iterare sulle mappe).
🌊 Metodi della Stream API (da Java 8)
Questi metodi vengono usati per l’elaborazione “funzionale” delle collezioni. Sono estremamente potenti e molto comuni nel codice moderno.
-
stream(): (Chiamato su una collezione, es.miaLista.stream()) Converte la collezione in uno “stream” per l’elaborazione. -
filter(Predicate p): Filtra gli elementi dello stream, tenendo solo quelli che soddisfano una condizione. -
map(Function f): Trasforma ogni elemento dello stream in qualcos’altro (es. da un oggettoUtenteal suonome). -
forEach(Consumer c): Esegue un’azione su ogni elemento (spesso usato come passo finale, es.forEach(System.out::println)). -
collect(Collector c): Raccoglie i risultati dello stream in una nuova collezione (es.Collectors.toList()per rimetterli in una lista). -
findFirst()/findAny(): Trova il primo (o uno qualsiasi) elemento che corrisponde ai filtri.
🧮 Metodi Matematici (Classe Math)
Questi sono tutti metodi statici, quindi li chiami direttamente sulla classe Math.
-
Math.max(a, b): Restituisce il più grande tra due numeri. -
Math.min(a, b): Restituisce il più piccolo tra due numeri. -
Math.abs(num): Restituisce il valore assoluto. -
Math.round(double num): Arrotonda un numero decimale all’intero più vicino. -
Math.ceil(double num): Arrotonda per eccesso (all’intero superiore). -
Math.floor(double num): Arrotonda per difetto (all’intero inferiore). -
Math.random(): Restituisce un numerodoublecasuale tra 0.0 (incluso) e 1.0 (escluso). -
Math.pow(double base, double exponent): Calcola la potenza.
🖥️ Metodi di Utility e Stampa
-
System.out.println(Object o): Il metodo più usato in assoluto per il debug. Stampa l’oggetto (chiamando il suotoString()) sulla console e va a capo. -
System.out.print(Object o): Comeprintlnma non va a capo. -
Arrays.toString(array[]): Metodo statico utilissimo per stampare il contenuto di un array in modo leggibile (es.[1, 2, 3]). -
Arrays.asList(T... items): Metodo statico che crea rapidamente una lista (di dimensione fissa) a partire da un elenco di elementi. -
Collections.sort(List list): Metodo statico per ordinare una lista.
Vuoi approfondire una di queste categorie, ad esempio come funzionano i metodi delle collezioni o gli Stream?