Gestione delle stringhe
Java mette a disposizione degli sviluppatori una classe (inclusa nel package java.lang
) chiamata string
, che permette, appunto, la gestione delle stringhe (da notare che da questa classe non è possibile derivare altre sottoclassi).
Gli oggetti di tipo string
possono essere inizializzati in più modi, ma normalmente i costruttori più utilizzati sono due:
public String()
: che costruisce una stringa vuota (perché sia allocata è necessario utilizzare l'istruzionenomeStringa = new String()
);public String (string value)
che costruisce una stringa contenente la stringavalue
(in pratica si ottiene la copia della stringa value).
I metodi della classe più utilizzati sulle stringhe sono:
length()
: restituisce il numero di caratteri che compongono la stringa escluso il terminatore;charAt(int i)
: restituisce il carattere della stringa in posizione i;concat(string str)
: restituisce una nuova stringa ottenuta dalla concatenazione delle stringa con la stringastr
;equals(string str)
: confronta la stringa con la stringastr
, restituendotrue
se risultano uguali;equals.IgnoreCase(string str)
: confronta la stringa con la stringastr
tenendo conto delle lettere minuscole e maiuscole;compareTo(string str)
: confronta la stringa con la stringa passata come parametro (str
), restituendo 0 se risultano uguali, un numero positivo sestr
è minore in ordine alfabetico e un numero negativo sestr
è maggiore;
Gestione dei vettori
Java oltre all'implementazione di una classe per la gestione delle stringhe, ne fornisce una che permette di gestire i vettori (contenuta nel package java.util
): la classe Vector
.
Un oggetto di tipo vettore è fornito di tre costruttori, e può quindi venire definito in altrettanti modi:
public Vector()
: costruisce un vettore vuoto (avente dimesione di default 10);public Vector(int capacitaIniziale)
: costruisce un vettore di capacitàcapacitaIniziale
;public Vector(int capacitaIniziale, int incremento)
: costruisce un vettore di capacitàiniziale pari acapacitaIniziale
avente come incremento di capacità pari aincremento
(quando viene aggiunto un nuovo elemento ad un vettore già pieno, infatti, la classe Vector alloca un nuovo vettore di capacità uguale alla precedente più un incremento, che di default è uguale a 1).
I metodi più utilizzati della classe Vector:
elementAt(int i)
: restituisce l'elemento in posizionei
;firstElement()
: restituisce il primo elemento del vettore;lastElement()
: restituisce l'ultimo elemento;addElements(Object obj)
: aggiungeobj
dopo l'ultimo elemento del vettore (la classeObject
è la radice da cui sono derivate tutte le altre classi Java);insertElementAt(Object obj, int i)
: inserisce il nuovo elementoobj
nella posizionei
;setElementAt(Object obj, int i)
: sostituisce l'elemento in posizionei
conobj
;removeElementAt(int i)
: rimuove l'elemento in posizionei
;removeElement(Object obj)
: se il vettore contiene l'elementoobj
, esse verrà rimosso e il metodo restituirà il valoretrue
, altrimenti sarà restituitofalse
;removeAllElements()
: rimuove tutti gli elementi del vettore.
La classe Hashtable
La classe Hashtable
(contenuta nel package java.util
e derivata dalla classe astratta Dictionary
) permette di memorizzare una collezione di oggetti (più specificatamente delle coppie oggetto-chiave) avente funzioni molto simili ai database: le chiavi non replicabili permettono infatti un veloce accesso ai dati.
Nota: Chiavi e oggetti devono essere di tipo Object
.
I metodi più importanti implementati da Hashtable sono:
size()
: restituisce un intero contenente il numero di elementi inseriti nell'Hashtable;isEmpty()
: restituisce un valore booleano che indica se il dizionario è vuoto o meno (il valoretrue
segnala il dizionario vuoto);get(Object chiave)
: restituisce l'oggetto a cui è associata la chiavechiave
, se la chiave non viene trovata restituiscenull
;put(Object chiave, Object elemento)
: inserisce in hashtable l'elementoelemento
e gli associa la chiavechiave
, se la chiave è già stata inserita viene sostituito l'oggetto ad essa associato e viene restituito, altrimenti viene restituitonull
;remove(Object chiave)
: rimuove dalla hashtable l'elemento associato achiave
, se la chiave non esiste viene restituitonull
.
I metodi elements()
e keys()
ritornano collezioni oggetti che implementano l'interfaccia Enumeration
, grazie alla quale è possibile scorrere la collezione di oggetti, utilizzando i metodi:
hasMoreElements()
: che restituisce il valore booleanotrue
se ci sono ancora elementi da scorrere;nextElement()
: si sposta all'elemento successivo.