PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [JAVA] Wann ist es Sinnvoll eine ArrayList zu nutzen oder einen Vecrot zu verwenden?



McSnoop
27-10-2004, 15:28
Wann ist es Sinnvoll eine ArrayList oder einen Vecrot zu verwenden?

Haben diese beiden Sachen überhaupt unterschiede???

Bei beiden kommt das gleiche Ergebnis raus.

mfg
McSnoop

ArrayList:



import java.awt.*;
import java.util.*;

public class ArrayList{
public static void main(String[] args){
String name = "Eine Zeichenfolge";
ArrayList al = new ArrayList();
al.add("Eine Zeichenfolge");
al.add(new Button("Okay"));
al.add(new Point(33,33));
for(int i=0; i<al.size();i++){
System.out.println(al.get(i));
if( (al.get(i).getClass().getName()).equals("java.awt.Button"))
System.out.println(" Ein Button mit Label: "+ ((Button)al.get(i)).getLabel());
}
}
}



Vector:



import java.awt.*;
import java.util.*;

public class VectorDemo{
public static void main(String[] args){
String name = "Eine Zeichenfolge";
Vector v = new Vector();
v.add("Eine Zeichenfolge");
v.add(new Button("Okay"));
v.add(new Point(33,33));
for(int i=0; i<v.size();i++){
System.out.println(v.get(i));
if( (v.get(i).getClass().getName()).equals("java.awt.Button"))
System.out.println(" Ein Button mit Label: "+ ((Button)v.get(i)).getLabel());
}
}
}

Lin728
27-10-2004, 16:13
Die Vector-Methoden sind synchronized, die der Arraylist nicht. Bei meheren Threads die am selben Vector arbeiten würd ich Vector nehmen.

Arraylist ist dadurch ein bisschen schneller, außerdem hat es andere vergrößerungsalgorythmen.

McSnoop
27-10-2004, 16:17
was ist das synchronized?????

Ist das der einzige unterschied, neben den vergrößerungsalgos??

mfg
McSnoop

Lin728
27-10-2004, 18:39
Synchronized setzte den Monitor auf diese Klasse, während ein Thread in einer Methode des vectors ist, darf kein anderer rein.

Ist dadurch ein wenig langsamer (fast schon wurscht).

peschmae
28-10-2004, 08:08
Vector stammt noch aus alten (Java 1.0 oder so) Zeiten - mittlerweile basiert das intern aber auf ArrayList. Entsprechend kommts aufs gleiche raus, ich tendiere meist zu ArrayList weil das das nette List-Interface verwendet (da kann man auch einfach mit LinkedList ersetzen, auch wenn die sehr langsam ist ;))

MfG Peschmä