PDA

View Full Version : [JAVA] Qualche chiarimento su


e-commerce84
31-05-2009, 16:33
Ciao,
qualche domanda per vedere se ho capito bene il significato del tipo Vector.

Praticamente la classe Vector definisce un insieme di operazioni utili su di una collezione dinamnica di oggetti astraendo dal tipo effettivo degli elementi che ci posso mettere dentro (quindi serve a fare un'atrazione polimorfica), giusto?

In parole povere se io dichiaro una variabile di tipo Vector, per esempio: Vector V stò dichiarando una collezione di oggetti e dentro V (dopo aver costruito la collezione mediante l'invocazione del costruttore) ci potrò andare a mettere dentro quello che mi pare.

Ad esempio se ho un tipo Rettangoli potrò popolare la mia collezione V di Rettangoli mettendoceli dentro.

Se invece ho 2 tipi di dato non omogenei, come ad esempio Rettangoli ed Animali posso mettere dentro Vector entrambi gli elementi e realizzare così una collezione non omogenea?

Se si...praticamente la grossa differenza tra un Vector ed un vettore del C stà nel fatto che in un vettore C il compilatore vuole che il vettore abbia un tipo preciso (ad esempio int) ed il vettore viene allocato in maniera tale che ogni cella ha la dimensione adatta per contenere quel tipo di dato.

Mentre Vector di Java che fà? Usa i puntatori? (nel senso che è come se si allocasse un vettore di puntatori ed in ogni cella ci mette il riferimento ad un certo oggetto e quindi posso avere un Vector che rappresenterà collezioni non omogenee)

Ho capito bene?

Grazie
Andrea

wizard1993
31-05-2009, 19:37
la vector semplicemente mantiene in memoria un array o che so io di Object; ne più ne meno;

Oceans11
01-06-2009, 07:22
Mentre Vector di Java che fà? Usa i puntatori? (nel senso che è come se si allocasse un vettore di puntatori ed in ogni cella ci mette il riferimento ad un certo oggetto e quindi posso avere un Vector che rappresenterà collezioni non omogenee)

Ho capito bene?

Assolutamente no!! :)
Vector non permette di aggiungergli dati non omogenei!
Però, al contrario degli array di c e java, permette un'allocazione dinamica, nel senso che può cambiare la sua dimensione a runtime.